autotools基础
一般在linux上编译一个工程需要先调用./configure,大部分linux开源项目都使用autotools编译架构,都会有configure这个脚本。通过在执行./configure,产生Makefile,src/Makefile,config.h,为下一步编译做准备。随后调用make进行编译。一般步骤如下:
./configure
make
make check
su
Password:***
make install
make installcheck
文件结构
make install将编译的程序,库或者头文件安装到系统中。
安装的路径由prefix决定,默认prefix=/usr/local
路径变量 | 默认值 |
---|---|
prefix | /usr/local |
exec-prefix | prefix |
bindir | exec-prefix/bin |
libdir | exec-prefix/lib |
includedir | prefix/include |
datarootdir | prefix/share |
datadir | datarootdir |
mandir | datarootdir/man |
infodir | datarootdir/info |
比如你可以这样改变prefix值
./configure –prefix ~/usr
make
make install
标准配置变量
./configure可以自动侦测这些变量设置。但是你也可以强制设置这些值。
变量 | 含义 |
---|---|
CC | C编译命令 |
CFLAGS | C编译器参数 |
CXX | C++编译命令 |
CXXFLAGS | C++编译器参数 |
LDFLAGS | 链接器参数 |
CPPFLAGS | C/C++预处理器参数 |
./configure –help可以列出全部的选项
./configure --prefix ~/usr CC=gcc-3 CPPFLAGS=-I$HOME/usr/include LDFLAGS=-L$HOME/usr/lib
make的一些常用参数
make all
等价于make,编译程序,库,文档等。
make install
安装编译好的程序和库,头文件到系统中。
make install-strip
和make install相同,但是剥离掉调试符号信息。
make uninstall
make install的反向操作。
make clean
删除编译产生的文件(make all的反向操作)
make distclean
删除一些./configure产生的文件。
make check
运行测试项
make installcheck
检查安装程序或库,如果支持的话。
make dist
创建一个压缩包文件 PACKAGE-VERSION.tar.gz.
资料来源
autotools.pdf