【问题标题】:Setting default linker for gcc on Solaris在 Solaris 上为 gcc 设置默认链接器
【发布时间】:2015-01-26 10:26:18
【问题描述】:

我正在尝试在 Solaris 10 sparc 上编译 Python 3.2.3,并且配置脚本在早期阶段失败(“检查 C 编译器是否工作”)。

检查 config.log 表明原因是 gcc 使用 /usr/ccs/bin 下的 Solaris 链接器而不是 GNU 链接器,并尝试传递不受支持的链接器标志。我也安装了 GNU ld,并将它设置为指向其 bin 目录的 PATH(它比 /usr/ccs/bin 更早列出)。

我的问题是如何强制 gcc 使用 GNU 链接器。我还没有找到任何简单的解决方案。

我认为这个问题与 python 没有严格的关系,我之前使用 autoconf 的其他软件也遇到过同样的问题。

【问题讨论】:

  • 在构建 gcc 时选择使用哪个链接器。稍后尝试更改它是行不通的。所以问题是:你的 gcc 来自哪里?什么 config.log 消息让您相信这是问题所在?
  • 自建gcc。当我编译它时,我添加了 --with-gnu-ld 标志,希望它能解决我的问题,但没有运气。
  • 啊,所以编译一个简单的 helloworld 也可能会失败,那么这与 python 无关吗?您是否使用了 --with-ld=/path/to/the/right/ld?您是否有特殊原因要使用 GNU ld,但在 solaris 上不推荐使用它?
  • 不,Solaris ld 对我来说也可以,如果它可以工作的话。以前,我尝试过在没有 gnu ld 选项的情况下编译的 gcc,结果相同。之后,我使用上述选项重建了 gcc。所以简而言之,如果我可以使配置不产生任何与 sun ld 不兼容的链接器标志,我也会很高兴。我将尝试在没有 gnu ld 选项的情况下再次构建 gcc。
  • 我已经重新编译了我的 gcc 以使用 solaris 链接器,看来问题已经消失了。谢谢指点。

标签: gcc linker solaris autoconf


【解决方案1】:

首先通过which gcc 命令验证您使用的是哪个版本的gcc。其次,使用mv /usr/sfw/bin/gcc /usr/sfw/bin/gcc.bak 将您的当前 gcc 重命名为 gcc.bak。最后将新 c 编译器的路径添加到 $PATH 变量中。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-07-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-04-25
    • 2010-11-13
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多