Использование модуля erlang wx приводит к ошибке: Обнаружено несоответствие между версиями сборки программы и библиотеки

Я пытаюсь использовать модуль wx erlang, но он падает на всех функциях со следующей ошибкой:

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), но после этого я не мог найти способ продолжить.

Что я должен сделать, чтобы успешно запустить его?


person Deddy    schedule 09.02.2016    source источник


Ответы (1)


Библиотека и оболочки Erlang были скомпилированы с использованием двух разных компиляторов. Я не уверен, как вы установили любой из них, но лучше всего собрать их оба из исходников, используя ту версию g++, которая у вас есть локально.

В противном случае вы можете применить это изменение к заголовкам wxWidgets перед компиляцией оболочки Erlang для принудительной совместимости. между двумя версиями.

person VZ.    schedule 10.02.2016
comment
Я не компилировал ни один из них, оба я установил с помощью репозитория. Я постараюсь построить их сам, хотя я никогда не делал этого раньше. - person Deddy; 10.02.2016
comment
Спасибо, я построил их на своем компьютере, и теперь это работает. - person Deddy; 11.02.2016