GNU Linker找不到本地共享库

时间:2016-05-04 16:08:02

标签: c++ linker

我在linux上,我的链接器无法找到我的本地库。

当我跑步时

ld -L<path to my lib dir> OpenImageIo

我得到了

ld: cannot find OpenImageIO: No such file or directory

但libOpenImageIo在这里:

[k.masson@hauser24 lib64]$ ll
total 7856
lrwxrwxrwx 1 k.masson k.masson      21 May  4 17:53 libOpenImageIO.so -> libOpenImageIO.so.1.5
lrwxrwxrwx 1 k.masson k.masson      24 May  4 17:53 libOpenImageIO.so.1.5 -> libOpenImageIO.so.1.5.24
-rwxr-xr-x 1 k.masson k.masson 7542440 May  2 16:41 libOpenImageIO.so.1.5.24
lrwxrwxrwx 1 k.masson k.masson      26 May  4 17:53 libOpenImageIO_Util.so -> libOpenImageIO_Util.so.1.5
lrwxrwxrwx 1 k.masson k.masson      29 May  4 17:53 libOpenImageIO_Util.so.1.5 -> libOpenImageIO_Util.so.1.5.24
-rwxr-xr-x 1 k.masson k.masson  499288 May  2 16:41 libOpenImageIO_Util.so.1.5.24
drwxrwxr-x 3 k.masson k.masson      27 May  4 17:18 python2.7

该文件似乎是正确的

 [k.masson@hauser24 lib64]$ file libOpenImageIO.so.1.5.24 
     libOpenImageIO.so.1.5.24: ELF 64-bit LSB shared object, x86-64,
     version 1 (GNU/Linux), dynamically linked,
     BuildID[sha1]=4ba0f0a40dc1287cf1a74b2530d3d0837765868b, stripped

我不知道为什么我的链接器找不到我的库,我尝试了其他自定义库,问题是一样的 你知道为什么吗?

1 个答案:

答案 0 :(得分:2)

  

我不知道为什么我的链接器找不到我的库,

因为你没有问过它。这个命令:

ld -L<path to my lib dir> OpenImageIo

要求链接器将名为(字面OpenImageIo的文件链接到a.out

你可能想要这样做:

gcc -o your-exe foo.o bar.o -L<path-to-lib-dir> -lOpenImageIo

请注意,几乎不会使用ld链接UNIX系统上的任何内容。由于某些原因,请参阅此answer