如果不需要安装wxWidgets的话,很简单,./configure & make & make install。但是装起来后,发现Erlang的debugger无法启动,显示“ERROR: Could not find 'wxe_driver.so' in: /usr/local/lib/erlang/lib/wx-0.99.1/priv”,虽说不使用debugger也问题不大,不过有时候调个小程序什么的还是不方便,随决定把wxWidgets安装一下。
在没有安装wxWidgets以前,config这一步会显示:“wx: wxWidgets not found, wx will NOT be usable”。
OK,那先下载了wxWidgets 2.8.12,再默认编译,安装,没问题。
再来一次config,还是一样的提示:“wx: wxWidgets not found, wx will NOT be usable”,头大,为什么呢?折腾了好久,什么使用LD_LIBRARY_PATH了等等,问题还是一样。
最后在erlang-question一个thread上看到,可以查看OPT_ROOT/lib/wx下的config日志,看看到底是什么问题(其实这才是正道,前面的折腾都是瞎搞,没抓住重点)。
查看日志后,发现,config在调用wxWidgets的wx-config验证当前wxWidgets的版本时,发现版本不匹配。立马检查:wx-config –version,输出2.8.12,没问题啊。那再检查下config使用的什么命令:wx-config –unicode –debug …等,拷贝到命令行,enter,一堆提示,总体一句话:需要的特性未安装。
再回到wxWidgets的配置程序,configure –help后发现,跟unicode, debug相关的两个选项:--enable-debug --enable-unicode。好,wxWidgets再编译一次,然后再配置Erlang,这次不提示“wx: wxWidgets not found, wx will NOT be usable”了,提示:“wx: Can not link the wx driver, wx will NOT be useable”。再检查日志,发现wxWidgets的GL相关库找不到。
再编译wxWidgets,使用选项:./configure --with-opengl --enable-debug --enable-unicode。然后wxWidgets配置程序提示OpenGL相关库找不到,呃,再安装Linux的OpenGL相关库(mesa),然后再编译wxWidgets,没问题。
再重新编译配置Erlang,OK,wxWidgets没问题了。
启动erl,再debugger:start(),OK。
总结:Linux下要让Erlang能够使用wxWidgets,需要以下命令配置wxWidgets:
./configure --with-opengl --enable-debug --enable-unicode