c – 编译wxLua(跨平台和静态)

c – 编译wxLua(跨平台和静态),第1张

概述我计划创建一个新的C项目,在其中编写一些C函数,将一个带有wxLua的Lua引擎嵌入到其中,使我的C/C++函数可用于Lua端,然后将我的主程序(包括GUI)写入Lua中. 我的IDE /编译器是Windows上的Code :: Blocks / GCC.我想为Windows,Linux和OSX编译它. 我的问题: >编译wxWidgets和Lua >建筑wxLua >创建一个跨平台项目,知道哪个 我计划创建一个新的C项目,在其中编写一些C函数,将一个带有wxLua的Lua引擎嵌入到其中,使我的C/C++函数可用于Lua端,然后将我的主程序(包括GUI)写入Lua中.

我的IDE /编译器是Windows上的Code :: Blocks / GCC.我想为windows,Linux和OSX编译它.

我的问题:

>编译wxWidgets和Lua
>建筑wxLua
>创建一个跨平台项目,知道哪个库用于哪个 *** 作系统

我在wxLua上阅读了很多文档,发现你应该使用wxWidgets 2.8.12和Lua 5.2.3(因为它们是两个最新的稳定和受支持的版本).

如果可能,我希望程序最终成为一个独立的可执行文件.
所以我想我需要编译Lua和wxWidgets作为.lib库(windows)和.a库(linux / OSX),是正确的吗?我该怎么做?

一旦完成,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应用程序加载,因为您将加载任何其他库,因为它允许您保持组件彼此独立.

总结

以上是内存溢出为你收集整理的c – 编译wxLua(跨平台和静态)全部内容,希望文章能够帮你解决c – 编译wxLua(跨平台和静态)所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1253247.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-07
下一篇 2022-06-07

发表评论

登录后才能评论

评论列表(0条)

保存