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. 开发者


致读者: 小时百科一直以来坚持所有内容免费无广告,这导致我们处于严重的亏损状态。 长此以往很可能会最终导致我们不得不选择大量广告以及内容付费等。 因此,我们请求广大读者热心打赏 ,使网站得以健康发展。 如果看到这条信息的每位读者能慷慨打赏 20 元,我们一周就能脱离亏损, 并在接下来的一年里向所有读者继续免费提供优质内容。 但遗憾的是只有不到 1% 的读者愿意捐款, 他们的付出帮助了 99% 的读者免费获取知识, 我们在此表示感谢。

                     

友情链接: 超理论坛 | ©小时科技 保留一切权利