如何将我的C程序链接到静态/动态库?

时间:2016-02-16 19:35:13

标签: c makefile shared-libraries

我试图将我的C程序链接到静态和动态库以查看差异。我怎么做? 我制作了自己的Makefile:

# ------ executable rule  -----------
app : app.o
        -gcc -g  app.o -o app

# ------ intermeditate object files rule (.o) -------
app.o : main.c
         -gcc -g -c main.c -o app.o

我只是向你展示了我的一些Makefile,因为我认为其余部分是不必要的 我试图在-L. lstatic之后写-gcc -g app.o -o app,但它没有用。

1 个答案:

答案 0 :(得分:0)

了解invoking GCCgcc的参数顺序非常重要!

您可以使用-static-Bstatic

您还可以通过在链接时提供一些/usr/lib/libfoo.a(或一些适当的文件路径)参数,显式地链接静态库。

您可以更好地改善Makefile使用现有内置规则(尝试make -p)和常规变量,例如比如here。阅读documentation of GNU make