开源软件的编译流程

来源:互联网 发布:加里波利战役数据 编辑:程序博客网 时间: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的时候会出错,在根据出错的信息重新配置,一般的错误也就是找不到库,没有包含头文件之类的

原创粉丝点击