【问题标题】:Using erlang wx module results in an error: Mismatch between the program and library build versions detected使用 erlang wx 模块会导致错误:检测到程序和库构建版本之间的不匹配
【发布时间】:2016-05-20 03:47:58
【问题描述】:

我正在尝试使用 erlang 的 wx 模块,但它在所有功能上崩溃并出现以下错误:

Erlang/OTP 18 [erts-7.2] [source-e6dd627] [64-bit] [smp:8:8] [async-threads:10] [hipe] [kernel-poll:false]

Eshell V7.2  (abort with ^G)
1> wx:demo().
Fatal Error: Mismatch between the program and library build versions detected.
                                                                              The library used 2.8 (no debug,Unicode,compiler with C++ ABI 1009,wx containers,compatible with 2.6),
          and your program used 2.8 (no debug,Unicode,compiler with C++ ABI 1002,wx containers,compatible with 2.6).
                                                                                                                    Aborted (core dumped)

我在 Ubuntu 15.10 上安装了 erlang 18.2 和 wxWidgets 2.8。

我已经卸载并重新安装了 wxWidgets 和 erlang,这解决了我遇到的第一个错误(在 wx 模块的每个函数上获取未定义函数),但之后我找不到继续的方法。

我应该怎么做才能成功运行它?

【问题讨论】:

    标签: erlang wxwidgets abi wxerlang


    【解决方案1】:

    库和 Erlang 包装器是使用两种不同的编译器编译的。我不确定您是如何安装其中任何一个的,但最好是使用您本地拥有的任何版本的 g++ 从源代码构建它们。

    如果做不到这一点,您可以在编译 Erlang 包装器之前将this change 应用于 wxWidgets 标头以强制两个版本之间的兼容性。

    【讨论】:

    • 我没有编译任何一个,都是我使用存储库安装的。我会尝试自己构建它们,尽管我以前从未这样做过。
    • 谢谢,我在我的电脑上构建了它们,现在它可以工作了。
    猜你喜欢
    • 2011-01-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-12-09
    • 2011-06-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多