我在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
我不知道为什么我的链接器找不到我的库,我尝试了其他自定义库,问题是一样的 你知道为什么吗?
答案 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。