-L $ {SOME_LIB}在Makefile中的含义是什么?

时间:2015-11-13 08:53:17

标签: makefile shared-libraries

这里我用以下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的新手,但至少这个有用。

2 个答案:

答案 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 (......以及其他默认位置。)