我怎么知道ld使用的库的路径?
How do I know the path of libraries used by ld?
假设我正在使用 clang 构建和链接我的应用程序
clang -I/usr/local/include -c -o app.o main.c
clang -L/usr/local/lib -o app app.o -lfoo
我怎么知道 libfoo.a
或 libfoo.dylib
的位置?有详细模式吗?
手动搜索 /usr/lib
和 /usr/local/lib
是可以的,但是当你使用很多库时这样做会很乏味。
如果链接器是 GNU ld
,请传递 linker option --trace
,例如
clang -L/usr/local/lib -o app app.o -lfoo -Wl,--trace
如果链接器是 Darwin mach-o ld
,请传递 linker option -t
,例如
clang -L/usr/local/lib -o app app.o -lfoo -Wl,-t
然后链接器会报告每个目标文件的路径,archive(member) 或
它加载的动态库。
假设我正在使用 clang 构建和链接我的应用程序
clang -I/usr/local/include -c -o app.o main.c
clang -L/usr/local/lib -o app app.o -lfoo
我怎么知道 libfoo.a
或 libfoo.dylib
的位置?有详细模式吗?
手动搜索 /usr/lib
和 /usr/local/lib
是可以的,但是当你使用很多库时这样做会很乏味。
如果链接器是 GNU ld
,请传递 linker option --trace
,例如
clang -L/usr/local/lib -o app app.o -lfoo -Wl,--trace
如果链接器是 Darwin mach-o ld
,请传递 linker option -t
,例如
clang -L/usr/local/lib -o app app.o -lfoo -Wl,-t
然后链接器会报告每个目标文件的路径,archive(member) 或 它加载的动态库。