Olu*_*upo 4 shared-library compiling executable make
使用 makefile 对我来说是新的。到目前为止,我用最简单的方法进行的第一次测试效果很好。但是现在我被困在编写一个创建可执行文件和共享库的 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
Run Code Online (Sandbox Code Playgroud)
执行 makefile 时,只会编译可执行文件。甚至可以用一个 makefile 创建两个对象吗?创建这些文件的最佳方法是什么?
默认情况下,make只会在您的情况下构建Makefile 中的第一个目标exe.a。您可以告诉make创建另一个目标:
make lib.so
Run Code Online (Sandbox Code Playgroud)
或两个目标:
make lib.so exe.a
Run Code Online (Sandbox Code Playgroud)
或(首选)引入一个新的第一个目标,通常命名为
all:
all: exe.a lib.so
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
Run Code Online (Sandbox Code Playgroud)
现在一个简单的make将构建(伪)目标all,而后者又依赖于exe.a和lib.so,因此它们首先被构建。请注意,all在这种情况下,您不能在目录中调用文件,因为这样make会感到困惑。