【问题标题】:gcc version not compatible with progol softwaregcc 版本与 progol 软件不兼容
【发布时间】:2012-11-30 18:32:48
【问题描述】:

我正在使用一个名为 proGol 的 ILP 系统,它不再是最先进的; progol 实现已经在 C 中,尽管编码的语法类似于 prolog。但是,我可以在 gcc 版本为 3.4.3 的旧机器上运行它。这样的机器很旧,我需要在 4.6.3 的 gcc 版本的新服务器上运行我的代码。当我这样做时,软件会输出分段错误。我认为问题在于不兼容的 gcc 版本,并且 progol 本身可能只能在 32 位处理器上运行。有谁知道如何将机器的 gcc 版本调整为旧版本?

【问题讨论】:

  • 我猜测旧代码修改了字符串常量(可能是因为字符串文字作为char * 传递给函数,然后该函数修改了字符串)。这样的代码从来都不是可移植的;版本 4 的 GCC 编译器不再支持旧的 -fwriteable-strings 选项(选项中有一个或两个 e)。您的主要选择 AFAICS 是 (1) 修复 proGol 代码,使其不会修改字符串文字,或 (2) 在较新的机器上重建 GCC 3.4.x 编译器。从长远来看,你最好处理(1);短期来看,有可能(2)看起来更简单。
  • 你的评论很有帮助。

标签: gcc


【解决方案1】:

我知道这是一个老问题,但我最近不得不处理同样的错误,我在这里寻找答案,因为这是目前有人寻找“progol 分段错误”时的第一个谷歌结果。

使用 gcc-4.8 编译 progol 对我有用。我只是简单地将 Makefile 中的 gcc 别名更改为“gcc-4.8”。

我希望这可以帮助某人。

【讨论】:

    猜你喜欢
    • 2011-10-01
    • 2021-04-18
    • 1970-01-01
    • 1970-01-01
    • 2018-02-13
    • 2020-06-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多