【问题标题】:gcc/ld does not follow symbolic linked files when linkinggcc/ld 链接时不跟随符号链接文件
【发布时间】:2012-03-31 21:07:50
【问题描述】:

我目前正在从 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,其文件名有效 find:

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

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

想法?

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

【问题讨论】:

    标签: gcc ubuntu


    【解决方案1】:

    确保/etc/ld.so.conf 中提到了liba 居住的位置,然后运行ldconfig。或者,您可以使用-Lpath 提供搜索路径。

    【讨论】:

      猜你喜欢
      • 2011-04-11
      • 1970-01-01
      • 2014-12-03
      • 1970-01-01
      • 2023-03-11
      • 2016-06-21
      • 1970-01-01
      • 2018-09-02
      • 2014-11-26
      相关资源
      最近更新 更多