即使指定了-L,%LD也找不到共享库 [英] ld cannot find shared library even with -L specified
本文介绍了即使指定了-L,%LD也找不到共享库的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我正在尝试针对特定位置(/home/user/cuda_sync_analyzer-install/lib/libInsertTimingInstr.so
)的共享库编译C文件,但ld
似乎找不到它-
$ gcc -g -I/home/user/tools/cuda_sync_analyzer/src/InsertTimingInstr
-L/home/user/cuda_sync_analyzer-install/lib/
callback.c -o callback -lInsertTimingInstr.so
/usr/bin/ld: cannot find -lInsertTimingInstr.so
collect2: error: ld returned 1 exit status
我也试过
$ gcc -g -I/home/user/tools/cuda_sync_analyzer/src/InsertTimingInstr
-L/home/user/cuda_sync_analyzer-install/lib/
-lInsertTimingInstr.so callback.c -o callback
/usr/bin/ld: cannot find -lInsertTimingInstr.so
collect2: error: ld returned 1 exit status
以及设置LD_LIBRARY_PATH
$ export LD_LIBRARY_PATH=/home/user/cuda_sync_analyzer-install/lib/
$ gcc -g -I/home/user/tools/cuda_sync_analyzer/src/InsertTimingInstr
callback.c -o callback -lInsertTimingInstr.so
/usr/bin/ld: cannot find -lInsertTimingInstr.so
collect2: error: ld returned 1 exit status
文件libInsertTimingInstr.so
位于目录中-
$ ls -l /home/user/cuda_sync_analyzer-install/lib/ | grep Timing
-rw-r--r-- 1 user user 51992 Mar 18 18:04 libInsertTimingInstr.so
推荐答案
但%d似乎找不到
此命令行:gcc ... -lInsertTimingInstr.so ...
请求链接器链接到libInsertTimingInstr.so.a
或libInsertTimingInstr.so.so
,但这两者都不存在。
您想要:gcc ... -lInsertTimingInstr ...
(即删除lib
前缀和.so
后缀)。
或者,您也可以这样做:gcc ... /home/user/cuda_sync_analyzer-install/lib/libInsertTimingInstr.so ...
这篇关于即使指定了-L,%LD也找不到共享库的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文