/ usr / bin / ld:找不到共享库

时间:2013-09-05 15:00:09

标签: c gcc shared-libraries

我在/ usr / local / lib中有libcommon.so,我正在程序中链接这个库。

  

gcc -o test test_prog.c -L / usr / local / lib -llibcommon.so

我也试过这个

  

gcc -o test test_prog.c -L / usr / local / lib -llibcommon

它正在给予

  

/ usr / bin / ld:找不到-llibcommon.so
  collect2:ld返回1退出状态

它在那里:

$ locate libcommon.so
/usr/local/lib/libcommon.so
/usr/local/lib/libcommon.so.0
/usr/local/lib/libcommon.so.0.1.0
$

3 个答案:

答案 0 :(得分:7)

使用-l时,只需指定“基本”库名称:

-lcommon

这将在某个目录中追踪libcommon.so

你告诉编译器试图找到liblibcommon.so.so(和liblibcommon.so)并且它可能不会......实际上,你不会问这个问题是否可以。

一些GNU程序构建了一个库libiberty.so(或其等价物),因此链接行使用库链接:

-liberty

(这很有趣; GNU真的宁愿它是+liberty,但是......你无法解决所有问题。)

答案 1 :(得分:1)

链接-lcommon

时使用libcommon.so开关

答案 2 :(得分:0)

尝试导出LD_LIBRARY_PATH,指向您保存so文件的目录。

export LD_LIBRARY_PATH = / pathofdirectorywheresofilesarekept

相关问题