以下是关于如何在 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 的 wxlua 库(在 Windows 上),因此它可能不是您正在寻找的静态配置,但是静态构建可能会阻止您加载其他 Lua 库(除非您导出正确的符号并提供代理 DLL如described here),所以我不推荐这种配置。
另外,我仍在使用 Lua5.1 与 wxlua 和 wxwidgets,因为这允许我使用 LuaJIT 作为替代品,以在某些情况下获得更好的性能。如果使用 Lua 5.2 编译 wxlua,则不会有此选项,因为它们的 ABI 不同。
就与您自己的基于 C++ 的工具包的集成而言,最好的选择可能是将其公开为 Lua 库并从 wxlua 应用程序加载,就像您加载任何其他库一样,因为它允许您保持组件独立于每个库其他。