Aqu*_*irl 19 linker gcc ld binutils
-l选项告诉链接器搜索标准目录中的库.使用-L,我们可以指定自己的库目录进行搜索.
问题:顺序顺序是否也与-L选项有关,就像-l wrt链接器一样?
这个链接:http://gcc.gnu.org/onlinedocs/gcc/Link-Options.html没有多说-L的序列.
编辑 另外,
在默认目录之前搜索命令行中指定的目录
是来自手册页(正如Dmitry指出的那样),这是否意味着即使我指定的顺序如下:
gcc -lm hello.c -Lx
Run Code Online (Sandbox Code Playgroud)
仍然首先给出用-L指定的目录?
Dmi*_*kov 16
是的,顺序-L
的选择问题-就像-l
和-I
选项.
从 man ld
-Lsearchdir
--library-path = searchdir将路径searchdir添加到ld将搜索归档库和ld控制脚本的路径列表中.您可以多次使用此选项.将按照在命令行中指定目录的顺序搜索目录.在默认目录之前搜索命令行中指定的目录.无论选项出现的顺序如何,所有-L选项都适用于所有-l选项.
编辑
抱歉,我确实错过了检查你给出的链接."man ld"可以写在控制台中.
Edit2
我-l
在-L
选项之前做了一个简单的测试,它与-L
之前没有任何区别-l
所以回答你的第二个问题,这个
gcc -lm hello.c -Lx
Run Code Online (Sandbox Code Playgroud)
等于这个
gcc -Lx -lm hello.c
Run Code Online (Sandbox Code Playgroud)
在两个测试中,首先在目录x /中搜索libm.
请注意,-l<lib>
在源文件之前放置是一种不好的做法,这可能会在链接时导致未定义的引用.这是正确的方法
gcc hello.c -Lx -lm
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
7489 次 |
最近记录: |