Autotools 笔记

                     

贡献者: addis

  • 本文处于草稿阶段。
预备知识 Makefile 笔记

1. 使用

   经典的三部使用

./configure [一些选项]
make [-j4]
make check # (可选)跑一些测试
make install
其中的选共享可以通过 .configure --help 查看。例如 --prefix=绝对安装路径,编译后 make install 后头文件库文件等都会放到这个路径。当然还会有一些包作者定义的选项,例如如果依赖于第三方的包且没有安装在默认路径,会要求提供安装路径(即使输入相对路径,编译出来 so 的 rpath 也会是绝对路径)。

   如果依赖别的包,选项一般是 --with-包名=绝对路径。如果用了没用,可能还需要设置环境变量 LIBRARY_PATH,相当于 g++-L 选项。如果要跑 make check,最好也添加相同的路径到 LD_LIBRARY_PATH,否则测试时链接不上会 fail。

   注意许多库直接把头文件库文件安装到标准目录而不是子文件夹。为了避免冲突,以及区分哪些文件是哪些库安装的,强烈建议自定义安装路径。另外如果没有管理员权限,也只能安装到自定义路径。

   若要 build 一个 debug 版本,参考这里的高赞。例如 arb 中(注意 ./config --help 中只有 CFLAGS 没有 CPPFLAGS),用

./configure --prefix=/安装路径 \
     CFLAGS=-DDEBUG CFLAGS="-g3 -O0"
make [-j4]
make install
即可。现在在编译主程序后用 gdb 调试就可以进入到 arb 的内部函数中调试。

2. 开发者

                     

© 小时科技 保留一切权利