使用 makefile 对我来说是新的。到目前为止,我用最简单的方法进行的第一次测试效果很好。但是现在我在编写一个创建可执行文件和共享库的生成文件时遇到了困难。正如我所说,我是 makefile 的新手。这是我的简单方法:
exe.a: main.c func.c
gcc main.c func.c -o exe.a
lib.so: func.c
gcc func.c -o lib.so -fPIC -shared
执行 makefile 时,只会编译可执行文件。甚至可以用一个makefile创建两个对象吗?创建这些文件的最佳方法是什么?
默认情况下
make
,只会在您的情况下构建Makefile 中的第一个目标。exe.a
您可以告诉make
创建另一个目标:或两个目标:
或(首选)引入一个新的第一个目标,通常命名为
all
:现在一个简单的
make
将构建(伪)目标all
,该目标又依赖于exe.a
andlib.so
,因此它们首先被构建。请注意,在这种情况下,您的目录中不能有一个文件被调用all
,因为那样make
会混淆。