即使指定了-L,%LD也找不到共享库 [英] ld cannot find shared library even with -L specified

查看:0
本文介绍了即使指定了-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.alibInsertTimingInstr.so.so,但这两者都不存在。

您想要:gcc ... -lInsertTimingInstr ...(即删除lib前缀.so后缀)。

或者,您也可以这样做:gcc ... /home/user/cuda_sync_analyzer-install/lib/libInsertTimingInstr.so ...

这篇关于即使指定了-L,%LD也找不到共享库的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆