Autotools/Automake:添加include路径的好方法



我有一个C++项目,使用自动工具在Linux环境下进行编译。所有包括我写入的路径都是相对的(例如:-i./path0/inc-i./path1/path2/inc-i./../path3/inc(。

一切都很好,直到我决定在树构建目录中构建我的项目,因为所有的对象文件都在源文件中。

当然,编译不再像我预期的那样工作了。

所以,我的问题是:

  1. 我必须在每个include前面添加我自己@srcdir@吗?(例如:AM_CPPFLAGS=-I@srcdir@/path0/inc-I@srcdir@/../path1/inc(
  2. 或者做这件事的好方法是什么
  1. 我必须在每个include前面添加自己@srcdir@吗?(例如:AM_CPPFLAGS=-I@srcdir@/路径0/inc-I@srcdir@//路径1/inc(
  2. 或者做这件事的好方法是什么

要正确支持树外构建,是的,您需要显式地表示相对于源目录的include目录。命令行参数中的任何其他源树路径,但仅通过表示规则先决条件的make自动变量表示的路径除外。

然而,就我个人而言,我更喜欢使用Automake提供的$srcdir和/或$top_srcdir变量,而不是Autoconf中的@srcdir@替换。

最新更新