【问题标题】:gcc and g++ library search pathsgcc 和 g++ 库搜索路径
【发布时间】:2014-06-05 21:17:28
【问题描述】:

我的所有代码都在具有 gcc 4.1.1 和 g++ 4.1.1 的系统下编译。 IT 只是给了我另一个系统,它有 gcc 4.1.2 和 g++ 4.1.2。当我使用 -v 选项运行时,它说

忽略不存在的目录“/usr/lib/gcc/x86_64-redhat-linux/4.1.2/../../../../include/c++/4.1.2/x86_64-redhat-linux” 忽略不存在的目录“/usr/lib/gcc/x86_64-redhat-linux/4.1.2/include” 忽略不存在的目录“/usr/lib/gcc/x86_64-redhat-linux/4.1.2/../../../../x86_64-redhat-linux/include”

但是 find 给了我这个

查找 /usr -name stddef.h /usr/lib/gcc/i386-redhat-linux/4.1.1/include/stddef.h

如何强制 gcc 对 i386 和 4.1.1 使用不同的搜索路径,而不是 4.1.2 和 x86_64 ?

【问题讨论】:

  • g++ 编译小程序失败了吗?然后打电话给 IT 并让他们修复它,而不是使用脆弱的解决方法(-isystem 如果必须的话)。
  • 谢谢。看起来在 32 位系统上混合了 64 位库和 32 个库。

标签: c++ c linux gcc g++


【解决方案1】:

这表明 gcc 的安装没有完成。您可能需要安装(例如sudo yum install libstdc++-devel glibc-devel)。假设gcc 实际上是使用redhat 的标准包安装的,这将起作用。当然,您可能还需要一些其他库,具体取决于您实际开发的内容。

当然,正确的做法是向 IT 部门投诉,但我怀疑如果您希望今天完成一些工作(如果您的 IT 部门与我合作过的 IT 部门类似),您最好还是这样做自己动手,如果你能做到的话。 (哦,大多数时候,根据我的经验,他们不知道如何解决问题,所以给他们上面的信息!)。

【讨论】:

  • 谢谢。看起来在 32 位系统上混合了 64 位库和 32 个库。
【解决方案2】:

您可以使用 -I 扩展搜索的 include 和 -L 的 libs 参数,后跟所需的路径。在documentationthis answer 中查看更多信息

【讨论】:

    猜你喜欢
    • 2023-03-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-03-02
    相关资源
    最近更新 更多