Использование модуля erlang wx приводит к ошибке: обнаружено несоответствие между версией программы и сборкой библиотеки
Я пытаюсь использовать модуль 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), но после этого я не смог найти способ продолжить.
Что я должен сделать, чтобы успешно запустить его?
1 ответ
Библиотека и оболочки Erlang были скомпилированы с использованием двух разных компиляторов. Я не уверен, как вы установили какой-либо из них, но лучше всего собрать их оба из источников, используя ту версию g++, которая у вас есть локально.
В противном случае вы могли бы применить это изменение к заголовкам wxWidgets перед компиляцией оболочки Erlang для обеспечения совместимости между двумя версиями.