经验首页 前端设计 程序设计 Java相关 移动开发 数据库/运维 软件/图像 大数据/云计算 其他经验
当前位置:技术经验 » 程序设计 » C 语言 » 查看文章
编译lua可执行程序
来源:cnblogs  作者:janbar  时间:2021/1/25 11:21:44  对本文有异议

前言

lua是一个非常好用的动态语音,最适合嵌入其他程序中使用。
我已经见过很多软件使用lua脚本让用户自定义想要的功能,而那些软件为lua提供接口即可,完成高度可定制的需求。
例如大名鼎鼎的Redis就使用lua作为嵌入脚本,还有Nginx-lua,Skynet等我用过的软件都是嵌入lua脚本。
因此编译lua成了基本操作,完成了这个基本操作,才能进行下一步的定制。

编译

  1. Linux只需要准备gcc环境,这个比较简单。window可参考我这篇文章
  2. 下载lua源码下载地址,完了使用cmd命令行窗口进入lua的src目录。
  3. Linux下:make linux test,windos下:make mingw test,然后就可以编译成功。
  4. 为编译后的可执行程序添加图标:
    准备一个lua.rc文件,在这个文件中可以定义编译后的exe文件很多其他信息,内容如下:
  1. id ICON "lua.ico"
  2. 1 VERSIONINFO
  3. FILEVERSION 5,4,2,0
  4. PRODUCTVERSION 5,4,2,0
  5. BEGIN
  6. BLOCK "StringFileInfo"
  7. BEGIN
  8. BLOCK "080404E4"
  9. BEGIN
  10. VALUE "CompanyName", "Janbar Company"
  11. VALUE "FileDescription", "Janbar build lua"
  12. VALUE "FileVersion", "5.4.2"
  13. VALUE "InternalName", "lua"
  14. VALUE "LegalCopyright", "Janbar"
  15. VALUE "OriginalFilename", "lua.exe"
  16. VALUE "ProductName", "lua"
  17. VALUE "ProductVersion", "5.4.2"
  18. END
  19. END
  20. BLOCK "VarFileInfo"
  21. BEGIN
  22. VALUE "Translation", 0x804, 1252
  23. END
  24. END

准备一个lua.ico的图片文件,我是48×48的大小。
然后修改Makefile,修改方法如下所示。

  1. LUA_T= lua
  2. LUA_O= lua.o luarc.o # 增加luarc.o一起编译出lua.exe
  3. LUAC_T= luac
  4. LUAC_O= luac.o luarc.o # 增加luarc.o一起编译出luac.exe
  5. mingw:
  6. windres lua.rc -O coff -o luarc.o #这里增加一行编译lua.rc文件
  1. 最终编译出来的可执行程序如下图所示:

  1. 下图表示编译后的可执行程序按照lua.rc中填写的信息展示。

总结

自己动手编译lua可执行程序过程中虽然遇到了很多问题,但都一一解决了,最后保存编译后的结果,美滋滋。
需要注意的是编译后需要使用的文件有:lua.exe、luac.exe、lua54.dll
另外我研究使用lua字节码定制功能的实例项目go_lua_c,可以参考参考。

原文链接:http://www.cnblogs.com/janbar/p/14295366.html

 友情链接:直通硅谷  点职佳  北美留学生论坛

本站QQ群:前端 618073944 | Java 606181507 | Python 626812652 | C/C++ 612253063 | 微信 634508462 | 苹果 692586424 | C#/.net 182808419 | PHP 305140648 | 运维 608723728

W3xue 的所有内容仅供测试,对任何法律问题及风险不承担任何责任。通过使用本站内容随之而来的风险与本站无关。
关于我们  |  意见建议  |  捐助我们  |  报错有奖  |  广告合作、友情链接(目前9元/月)请联系QQ:27243702 沸活量
皖ICP备17017327号-2 皖公网安备34020702000426号