linux centos 编译Lua5.2.0 静态库 动态库
一 lua下载
lua5.2.0下载地址 :http://download.csdn.net/download/yzf279533105/10109818
二
笔者这里linux环境为centos6.8 64位
仅编译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
4. 执行命令 yum install readline-devel 这是由于lua编译依赖readline库,而其依赖ncurses库,但没有指定
5. 执行命令 make linux 后面的linux表当前平台
6. 即可在当前目录,即 /home/lua-5.2.0/src目录下 得到编译出来的静态库liblua.a
7. 笔者编译出来的lua静态库下载地址:http://download.csdn.net/download/yzf279533105/9950914
同时编译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
4. 执行命令 yum install readline-devel 这是由于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) $@ $?
$(RANLIB) $@
下面添加
$(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
15. 笔者编译出来的lua静态库下载地址:http://download.csdn.net/download/yzf279533105/9950950
linux centos 编译Lua5.2.0 静态库 动态库相关推荐
- win7 VS2013 新建工程 编译lua5.2.0 静态库
一 lua下载 lua5.2.0下载地址 :http://download.csdn.net/download/yzf279533105/9949183 二 Windows下: 编译静态库步骤: 1. ...
- [linux]【编译】【高级01】 - 动态库的设定和依赖性的检查 20160921更新 文章没有最终结案
前言,linux的动态库是经常要用的,我们大致知道动态库是运行的时候加载到程序里面去,但是,即使如此,动态库的编译也需要有严格的头文件和依赖相关性.于是,构建系统编译项目的时候,经常会遇到动态库找不到 ...
- C/C++ 跨平台交叉编译、静态库/动态库编译、MinGW、Cygwin、CodeBlocks使用原理及链接参数选项
0. 引言 UNIX是一个注册商标,是要满足一大堆条件并且支付可观费用才能够被授权使用的一个操作系统.linux是unix的克隆版本,是由其创始人Linus和诸多世界知名的黑客手工打造的一个操作系统. ...
- Linux学习---静态库 动态库
今天我们主要来说说Linux系统下基于动态库(.so)和静态(.a)的程序那些猫腻.在这之前,我们需要了解一下源代码到可执行程序之间到底发生了什么神奇而美妙的事情. 在Linux操作系统中,普遍使用E ...
- mysql 4.0.27 下载,CentOS编译Mysql 4.0.27数据库问题解决
CentOS编译Mysql 4.0.27数据库问题解决以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 现在好多人都用起了 ...
- 【Android NDK 开发】Visual Studio 2019 使用 CMake 开发 JNI 动态库 ( 动态库编译配置 | JNI 头文件导入 | JNI 方法命名规范 )
文章目录 I . JNI 与 NDK 区别 II . Visual Studio 编译动态库 III. 配置 导入 jni.h 头文件 IV . IntelliJ IDEA Community Edi ...
- Linux-(C/C++)生成并使用静态库/动态库
静态库/动态库概要 在Windows下静态库的后缀为:.lib.动态库后缀为:.dll:而在Linux下静态库的后缀为:.a.动态库的后缀为:.so. 那么什么是静态库呢? 首先我们来看看程序编译的大 ...
- NDK01-打包静态库 动态库在mk和cmake环境配置使用
动态库和静态库 动态库: libxxx.so 运行的时候,才会去加载,加载一次就在内存中存在副本,其他地方使用就都是公用的.使用场景就是 高德百度sdk对外开房 静态库: libxxx.a 编译期把静 ...
- 软件库Library之静态库\动态库和静态加载\动态加载
软件库Library之静态库\动态库和静态加载\动态加载 动态库之导入库 https://blog.csdn.net/wallaceli1981/article/details/5740718 * 动 ...
最新文章
- jchdl - GSL Port
- python面试装饰器_Python测开面试题之装饰器
- .NET/C# 异常处理:写一个空的 try 块代码,而把重要代码写到 finally 中(Constrained Execution Regions)...
- 如何优雅地测量一只猫的体积?
- python朴素贝叶斯分布对数据的要求_统计学习方法与Python实现(三)——朴素贝叶斯法...
- 车顶维权女子被行拘五日!“特斯拉不可能妥协”,高管硬气回应却被狂批......
- SSIS工具的ETL过程,全量ETL和增量ETL过程教程
- 文字识别(三)--文字定位与切割
- JDBC — JDBC之Insert方法
- Redis Sentinel实现高可用配置
- autocad.net QQ群:193522571 判断string中是否包含集合中所有的字符串
- 【Vegas原创】控制文件损坏,使用trace文件恢复DB
- oracle笔记整理14——性能调优之oracle执行计划
- php转foloat,PHP: Descrierea directivelor de bază ale php.ini - Manual
- 微信小程序之“豆瓣电影”
- CCF关于举办2019年NOI教师培训(首师附中)的通知
- 洞见(1): zig 编程语言
- Mandriva 2009 Spring PWP中3D桌面的使用
- 信道编码算法的发展和应用
- 英特尔诺基亚发布MeeGo移动版操作系统
热门文章
- CodeForces - 1426F Number of Subsequences(dp)
- CodeForces - 1343F Restore the Permutation by Sorted Segments(思维)
- 2018宁夏邀请赛 - Copy and Submit II(推公式)
- CodeForces - 1030C Vasya and Golden Ticket(思维)
- 计算机组成原理模拟试题,计算机组成原理模拟试题及答案
- EGLSurfaces 和 OpenGL ES
- Linux项目自动化构建工具 make/Makefile
- 第48讲:分布式利器 Scrapy-Redis 原理
- 平均 3000-20000 块不等,有空接外包私活的入群!
- 你知道这 8 种 SQL 错误用法吗?