Using erlang wx module results in an error: Mismatch between the program and library build versions detected

Using erlang wx module results in an error: Mismatch between the program and library build versions detected

我正在尝试使用 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 包装器是使用两个不同的编译器编译的。我不确定你是如何安装它们的,但最好的办法是使用你本地拥有的任何版本的 g++ 从源代码构建它们。

否则,您可以在编译 Erlang 包装器之前将 this change 应用到您的 wxWidgets headers 以强制两个版本之间的兼容性。