我试图将我的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
,但它没有用。
答案 0 :(得分:0)
了解invoking GCC。 gcc
的参数顺序非常重要!
您可以使用-static
或-Bstatic
您还可以通过在链接时提供一些/usr/lib/libfoo.a
(或一些适当的文件路径)参数,显式地链接静态库。
您可以更好地改善Makefile
使用现有内置规则(尝试make -p
)和常规变量,例如比如here。阅读documentation of GNU make
。