贡献者: addis
经典的三部使用
./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。
注意许多库直接把头文件库文件安装到标准目录而不是子文件夹。为了避免冲突,以及区分哪些文件是哪些库安装的,强烈建议自定义安装路径。另外如果没有管理员权限,也只能安装到自定义路径。
lib/pkgconfig/*.pc
文件中会给出一些 configure 时的选项。以及编译新程序需要的 -I
命令和 -l
命令。
若要 build 一个 debug 版本,参考这里的高赞。例如 arb 中(注意 ./config --help
中只有 CFLAGS
没有 CPPFLAGS
),用
./configure --prefix=/安装路径 \
CFLAGS=-DDEBUG CFLAGS="-g3 -O0"
make [-j4]
make install
即可。现在在编译主程序后用 gdb 调试就可以进入到 arb 的内部函数中调试。