这里我用以下Makefile编译C代码。
MAIN:
g++ -c -o td.o -I/home/user/dp/pro/include td.c
g++ -c -o disk.o -I/home/user/dp/pro/include disk.c
g++ -o disk disk.o tds2.o -L ${DP_LIB} -L ${LIPN_LIB} -lgnb -lgtd -lnbl -lpin
./disk.exe RUN.dat
这里-L ${DP_LIB}
的目的是什么?确切地说,我希望了解${}
的功能。
如果它正在链接库,那么它与-llib
有何不同?
这个makefile到目前为止非常粗糙(我见过更大更好的)。我是makefiles的新手,但至少这个有用。
答案 0 :(得分:2)
-L
选项告诉链接器添加用于搜索库的列表的路径。 ${DP_LIB}
是在makefile中使用变量的方式。据推测DP_LIB
是通往某处的路径。
如果您只是阅读文档和实际的makefile,那么这一切都应该非常清楚。
答案 1 :(得分:1)
使用-L dir 指定目录,其中链接器搜索libs。 lib文件本身使用-l lib 参数指定。
示例:
-L/usr/X11R6/lib -lX11
表示链接器将在 / usr / X11R6 / lib 中查找libX11.so (......以及其他默认位置。)