【问题标题】:Why is libtool is throwing "unsupported hardcode properties" errors and what do they mean?为什么 libtool 会抛出“不支持的硬编码属性”错误,它们是什么意思?
【发布时间】:2012-08-15 05:19:18
【问题描述】:

我正在为 Windows 交叉编译 gettext-0.18.2,但遇到了一些问题。在其中一个共享库的链接阶段,libtool 给了我以下错误消息:

/bin/bash ../libtool --tag=CXX ...
libtool: link: unsupported hardcode properties
libtool: link: See the libtool documentation for more information.
libtool: link: Fatal configuration error.

您可以看到完整的构建日志,包括libtool 命令here(错误在页面的最底部)。

什么会导致这个错误,这是什么意思?尽管错误消息中有声明,但我似乎无法在文档中找到有关此错误的任何信息。

另外值得注意的是:真正让这件事变得奇怪的是 the build succeeded without error on Ubuntu 12.10 (Quantal)... 但它在当前 LTS 版本 Ubuntu 12.04 上失败了。


附加:我对成功的构建和失败的构建之间调用libtool 的行进行了比较。差异看起来像这样:

显然 C++ 编译器从命令中被省略了。这会导致上述错误吗?

【问题讨论】:

    标签: cross-compiling gettext libtool hardcode


    【解决方案1】:

    啊哈!

    问题变得非常微妙。 Ubuntu 12.10 (Quantal) 中的 mingw-w64 软件包将 g++-mingw-w64 列为依赖项 - 但在 Ubuntu 12.04 (Precise) 中并非如此。所以我需要做的就是将g++-mingw-w64 指定为构建依赖项。

    上述实际错误消息的原因是因为配置脚本找不到交叉编译器工具链的 C++ 编译器:

    量化:

    checking for g++... i686-w64-mingw32-g++
    checking whether the C++ compiler (...) works... yes
    

    精确:

    checking for g++... i686-w64-mingw32-g++
    checking whether the C++ compiler (...) works... no
    

    【讨论】:

    • 我有一个非常不同的问题 - 实际上是这个:trac.osgeo.org/geos/ticket/362 - 具有相同的症状。我没有交叉编译。我的解决方案与我的机器配置的棘手方式非常相关,所以我会为人们省去细节,但最重要的是 g++ 编译器如何与 libtools 交互存在问题,你的回答让我走上了正确的轨道.
    • 我认为您在 MinGW 包装中发现了一个错误。干得好,我建议您将它报告给 MinGW 包维护者,以便他们修复它。
    • @InkBlend:我怀疑这是一个错误——很可能有人需要 C 编译器而不是 C++ 编译器。此外,从 Quantal (12.10) 起,g++ 现在默认安装在工具链中。
    • @GeorgeEdison,我太傻了。我一直在寻找我的问题的解决方案,却找到了你的解决方案,然后把它们搞混了。你是对的,这绝对是不是一个错误。我很抱歉。
    • @InkBlend:别担心——没有伤害。希望您能找到解决问题的方法。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-12-03
    • 1970-01-01
    • 2012-07-07
    • 1970-01-01
    • 1970-01-01
    • 2012-03-23
    相关资源
    最近更新 更多