gcc/ld 链接时不遵循符号链接(symbolic link)文件

标签 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

不幸的是,由于我的构建系统中的版本控制原因,这两种解决方案对我来说并不理想。

想法?

编辑:没关系,我发现问题在于"new"vmware 不支持共享文件夹中的符号链接(symbolic link)。现在使用 NFS,一切都很好。

最佳答案

确定liba的位置/etc/ld.so.conf 中提到了生活。并运行 ldconfig .或者,您可以使用 -Lpath 提供搜索路径.

关于gcc/ld 链接时不遵循符号链接(symbolic link)文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9959692/

相关文章:

c++ - 在类成员初始化器列表中初始化 vector 元组

c++ - 标准库和GCC的CLion链接器错误

c++11 参数包错误行为与 Apple LLVM 7.0.0 但适用于 GCC-5.1

android - Ionic AngularJS 在 ubuntu 上构建 android

python - 由于脚本 'login.py' : Bad header: <html>"的 header 格式错误,无法使用 Python 和 MYSQL 登录

linux - 无法设置 crontab 脚本

c - 使用 mingw 对 imp 的 undefined reference

c++ - 包含头文件时,路径是否区分大小写?

Ubuntu 14.04 登录循环

linux - 从容器内将文件从主机复制到正在运行的 docker 容器?