我如何知道ld使用的库的路径?

10 浏览
0 Comments

我如何知道ld使用的库的路径?

假设我正在使用clang构建和链接我的应用程序。

clang -I/usr/local/include -c -o app.o main.c
clang -L/usr/local/lib -o app app.o -lfoo

我怎样才能知道libfoo.alibfoo.dylib的位置?是否有一个详细模式?

手动在/usr/lib/usr/local/lib中搜索是可能的,但当你使用多个库时,这样做会变得太麻烦。

0
0 Comments

ld是连接器,它用于将目标文件和库文件链接在一起生成可执行文件。在使用ld时,我们可能需要知道它使用的库文件的路径。那么如何知道ld使用的库文件路径呢?

如果使用的是GNU ld,在命令行中添加链接器选项--trace,例如:

clang -L/usr/local/lib -o app app.o -lfoo -Wl,--trace

如果使用的是Darwin mach-o ld,在命令行中添加链接器选项-t,例如:

clang -L/usr/local/lib -o app app.o -lfoo -Wl,-t

连接器将报告它加载的每个目标文件、存档文件或动态库的路径。

0