链接时,gcc / ld不遵循符号链接文件

时间:2012-03-31 21:07:50

标签: gcc ubuntu

我目前正在从ubuntu 11.04(gcc 4.5)切换到ubuntu 12.04(但我也遇到了与ubuntu 11.10相同的问题,gcc 4.6)并且我无法再编译一些项目了。

我有一个库,我们称之为liba,我自己构建,所以我得到了

liba.so.0.0.1 (real library)
liba.so.0  -> liba.so.0.0.1 (symbolic link)
liba.so    -> liba.so.0.0.1 (symbolic link)

但是当我尝试使用liba构建一个程序:

gcc -o myprogram myprogram.c -la

我收到错误,找不到我的图书馆:

/usr/bin/ld.bfd.real: cannot find -la

另一方面,如果我删除liba.so并将liba.so.0.0.1重命名为liba.so一切正常。或者使用完整的共享库调用gcc,其文件名可以找到:

gcc -o myprogram myprogram.c -l:liba.so.0.0.1

不幸的是,由于我的构建系统中的版本控制原因,我不希望这两种解决方案。

想法?

编辑:没关系我发现问题是“新”vmware不支持共享文件夹中的符号链接。现在使用NFS,一切都很好。

1 个答案:

答案 0 :(得分:1)

确保liba中提及/etc/ld.so.conf所在的位置并运行ldconfig。或者,您可以使用-Lpath提供搜索路径。