开源软件的编译流程
来源:互联网 发布:加里波利战役数据 编辑:程序博客网 时间:2024/06/04 20:03
linux上大部分的开源软件的编译的大致流程的都是:
./configure [option] (这个一步是生成Makefile)
make (编译)
make install (将编译生成的lib bin share include等copy到指定的安装目录,安装目录在./configure的--prefix参数中指定)
拿到一个新的开源软件,如果你不知道怎么去编译,首先看看源码目录下的README文件。一般README文件中会指明这个软件的依赖包。
./configure --host=arm-linux --prefix=/work/panorama/directfb/11/DirectFB-1.0.0/output/ --with-gfxdrivers=none --with-inputdrivers=all --disable-png --disable-jpeg --disable-zlib --enable-sdl=no --enable-gif=no --disable-x11 CFLAGS=-I/work/panorama/directfb/11/freetype-2.3.5/output/include/ LDFLAGS="-L/wo rk/panorama/directfb/11/freetype-2.3.5/output/lib/ -L/work/panorama/directfb/11/zlib-1.2.3/output/lib"
configure这个函数的参数说明:
--host表示的是你用哪个编译器去编译,如果是arm-linux-gcc那就写arm-linux, 如果arm-none-linux-gnueabi-gcc那就写arm-none-linux-gnueabi 如果这个参数不配置那就是用gcc去编译。(先需要将用的编译器添加到系统的PAT里,export PATH=<交叉编译器路径>:$PATH)
--prefix 这个参数是用来配置很多安装的目录。这个参数的说明可以参考./configure --help
其他的一些参数就是根据自己的需要来配置了,如
--disable-png:这个是参数表示编译出来的direct不支持png图片。
--disable-jpeg:这个参数表示编译出来的direct不支持jpeg图片。
--disable-zlib --enable-sdl=no --enable-gif=no --disable-x11等都是同样的意思。
如果将其中的某一项enable了,那就需要先编译那个库,比如--enable-jpeg了,那就先要编译jpeg -6b这个源码,然后在LDFLAGS这个参数上加上jgeg-6b这个源码编译出来的动态库。在CFLAGS这个参数上加上jpeg-6b这个源码编译出来的include目录。
其他参数就没必要说了
总结下:当你拿到一个新的开源的源码之后,但是又不熟悉,我觉得首先要看源码的README,这里面会有一些信息告诉怎么去编译。如软件的依赖关系。大致也就是
1, 指定交叉编译工具:export PATH=<交叉编译工具:$PATH
2, ./configure
3, make
4, make install
这里面的重点是./configure。如果配置不对,那make的时候会出错,在根据出错的信息重新配置,一般的错误也就是找不到库,没有包含头文件之类的
- 开源软件的编译流程
- Linux下通过编译源码安装软件的流程
- SIP开源软件的编译1
- SIP开源软件的编译2
- SIP开源软件的编译3
- 开源软件编译
- 实施软件开流程控制的前提
- 软件开发的流程
- 软件发布的流程
- 软件测试的流程
- 软件开发的流程
- 软件的开发流程
- 软件开发的流程
- 软件测试的流程
- 软件的本地化流程
- 编译开源软件doubango
- 编译的相关流程
- GCC的编译流程
- hdu1065&&poj1051 Wooden Sticks
- "我的电脑"出现多个盘符,指向同一块硬盘?(SUBST命令)
- ubuntu中如何自己设置分辨率和主显示器
- JAVA项目开发中常遇到的字符串替换问题
- 将long数据存到字符串中并格式化字符串数组
- 开源软件的编译流程
- hibernate一对一双向主键关联_XML
- 2013年最流行的php框架盘点
- finding memory leaks for Solaris applications
- C++ Deque(双向队列)
- Android应用设置为全屏的方法
- POJ 1328 Radar Installation
- 毕业设计(十二)---后台用户管理(2)之- 分页 实现上一页,下一页,跳页功能
- 用Ras的API函数创建一个拨号连接