linux centos 编译Lua5.2.0 静态库 动态库
  MYxncHy1f6BF 2023年11月02日 31 0


一 lua下载


笔者这里linux环境为centos6.8 64位

仅编译lua静态库

1. 从上面的下载地址下载得到lua-5.2.0.tar.gz压缩包,笔者这里是放在了/home目录下

lua-5.2.0.tar.gz  即可解压得到目录lua-5.2.0

3. 进入目录 /home/lua-5.2.0/src

4. 执行命令 yum install readline-devel  这是由于lua编译依赖readline库,而其依赖ncurses库,但没有指定

5. 执行命令 make linux 后面的linux表当前平台

lua-5.2.0/src目录下 得到编译出来的静态库liblua.a

7. 笔者编译出来的lua静态库下载地址

同时编译lua静态库,动态库

1. 从上面的下载地址下载得到lua-5.2.0.tar.gz压缩包,笔者这里是放在了/home目录下

2. 进入目录 /home,执行解压命令 tar -zxvf lua-5.2.0.tar.gz  即可解压得到目录lua-5.2.0

3. 进入目录 /home/lua-5.2.0/src

这是由于lua编译依赖readline库,而其依赖ncurses库

5. 执行命令 vim Makefile 打开make文件

6. 修改 CFLAGS= -O2 -Wall -DLUA_COMPAT_ALL $(SYSCFLAGS) $(MYCFLAGS) 改为

    CFLAGS= -O2 -Wall -DLUA_COMPAT_ALL $(SYSCFLAGS) $(MYCFLAGS) -fPIC   后面加的-fPIC表示要编译位置无关代码

7. 在 LUA_A=liblua.a 下面添加一行 LUA_SO=liblua.so 表新建一个目标,要编译出lua动态库,编译出来的动态库文件名字为liblua.so

8. 修改 ALL_T= $(LUA_A) $(LUA_T) $(LUAC_T) 改为 ALL_T= $(LUA_A) $(LUA_T) $(LUAC_T) $(LUA_SO) 表示添加上刚才的目标

9. 在 $(LUA_A): $(BASE_O)
           $(AR) $@ $?

    下面添加

$(LUA_SO): $(CORE_O) $(LIB_O)
        $(CC) -o $@ -shared $? -ldl -lm         注意:本行前面的空格其实是一个tab

10. 保存该makefile文件,然后执行命令 cd .. 用来回到上层目录,即回到目录/home/lua-5.2.0

11. 执行命令 vim Makefile 打开make文件

12. 修改 TO_LIB= liblua.a 改为 TO_LIB= liblua.a liblua.so  表同时编译静态库和动态库

13. 保存该makefile文件,然后执行命令make linux 后面的linux表当前平台

14. 即可在当前目录,即 /home/lua-5.2.0/src目录下 得到编译出来的静态库liblua.a,动态库liblua.so


【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年11月08日 0

暂无评论

推荐阅读
  nQkVcpdWfLDr   2023年11月13日   28   0   0 cisedLua
  1m9rJBpbaLoS   2023年11月02日   45   0   0 Luanginxperl
MYxncHy1f6BF