c – 编译wxLua(跨平台和静态)
我计划创建一个新的C项目,在其中编写一些C函数,将一个带有wxLua的Lua引擎嵌入到其中,使我的C/C++函数可用于Lua端,然后将我的主程序(包括GUI)写入Lua中.
我的IDE /编译器是Windows上的Code :: Blocks / GCC.我想为Windows,Linux和OSX编译它. 我的问题: >编译wxWidgets和Lua 我在wxLua上阅读了很多文档,发现你应该使用wxWidgets 2.8.12和Lua 5.2.3(因为它们是两个最新的稳定和受支持的版本). 如果可能,我希望程序最终成为一个独立的可执行文件. 一旦完成,what kind of project do I need to create和我如何嵌入wxLua到该项目? I couldn’t find a lot of information on that. 最后,我将如何告诉我的IDE / project / makefile(?)哪些库用于哪个操作系统? 解决方法
以下是关于如何在Windows / OSX / Linux上为我的跨平台项目编译wxwidgets / wxlua的说明,但是我使用gcc / mingw-tdm而不是Code :: Blocks,因此您可能需要将其适应您的环境.
以下是在Windows上如何构建wxwidgets: ./configure --prefix="$INSTALL_DIR" --disable-shared --enable-unicode --enable-compat28 --with-libjpeg=builtin --with-libpng=builtin --with-libtiff=no --with-expat=no --with-zlib=builtin --disable-richtext CFLAGS="-Os -fno-keep-inline-dllexport" CXXFLAGS="-Os -fno-keep-inline-dllexport" make make install 这是如何在Windows上构建wxlua的: cmake -G "MSYS Makefiles" -DCMAKE_INSTALL_PREFIX="$INSTALL_DIR" -DCMAKE_BUILD_TYPE=MinSizeRel -DBUILD_SHARED_LIBS=FALSE -DwxWidgets_CONFIG_EXECUTABLE="$INSTALL_DIR/bin/wx-config" -DwxWidgets_COMPONENTS="stc;html;aui;adv;core;net;base" -DwxLuaBind_COMPONENTS="stc;html;aui;adv;core;net;base" -DwxLua_LUA_LIBRARY_USE_BUILTIN=FALSE -DwxLua_LUA_INCLUDE_DIR="$INSTALL_DIR/include" -DwxLua_LUA_LIBRARY="$INSTALL_DIR/lib/lua51.dll" . (cd modules/luamodule; make) (cd modules/luamodule; make install/strip) 您需要更新wxlua构建说明才能使用Lua5.2而不是使用Lua5.1. 我在this repository中有Windows,OSX和Linux的工作版本脚本.脚本已经在最新的wxwidgets和wxlua版本(使用两个存储库的中继)进行了测试.他们生成一个与Lua dll(在Windows上)相连的wxlua库,所以它不是一个静态的配置,你可能正在寻找,但有静态构建可能会阻止你加载其他Lua库(除非你导出正确的符号并提供一个代理DLL as described here),所以我不建议配置. 此外,我仍然使用Lua5.1与wxlua和wxwidgets,因为这允许我使用LuaJIT作为替代替代,以获得更好的性能在某些情况下.如果您使用Lua 5.2编译wxlua,因为它们的ABI不同,您将不会有此选项. 在与自己的基于C的工具包的集成方面,最好的选择可能是将其作为Lua库公开,并从wxlua应用程序加载,因为您将加载任何其他库,因为它允许您保持组件彼此独立. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |