C 获取使用GNU自动工具编译的项目的所有包含项列表
对于使用GNU autotools(例如emacs)管理并成功编译的C项目,是否有一种简单的方法来获取编译项目所需的所有包含头的列表(编译期间由C 获取使用GNU自动工具编译的项目的所有包含项列表,c,header-files,configure,autotools,C,Header Files,Configure,Autotools,对于使用GNU autotools(例如emacs)管理并成功编译的C项目,是否有一种简单的方法来获取编译项目所需的所有包含头的列表(编译期间由configure脚本找到的特定于站点的包含路径) 我目前的做法是 运行cpp-C… 查看缺少标题的错误 手动将所需标题的路径添加到我的命令中 重复此操作,直到不再出现错误 显然,这是一种痛苦。我认为使用configure编译的项目在某个地方会有这些信息。是吗 对于使用GNU自动工具(如emacs)管理和编译的C项目, 有没有一种简单的方法可以获取包含的
configure
脚本找到的特定于站点的包含路径)
我目前的做法是
cpp-C…
configure
编译的项目在某个地方会有这些信息。是吗
对于使用GNU自动工具(如emacs)管理和编译的C项目,
有没有一种简单的方法可以获取包含的所有标题的列表
是否需要编辑该项目
如果“被要求”是指您希望在项目成功构建后做出决定,那么是的。除非被抑制,否则基于自动生成的makefile具有生成包含依赖项列表的规则,它们在后续生成中使用这些规则来识别由于依赖项的更改而重建未更改的源的需要。您可以在.deps
子目录中找到这些文件
值得一提的是,当使用
gcc
进行编译时,会使用gcc-MM
命令来实现此目的。gcc-MM myfile.c
@wildplasser不考虑任何配置,是吗?似乎pkg-config--cflags-only-I
可以工作,但我必须研究如何创建配置文件,我想,它也不考虑configure
可以找到的任何非标准位置的包含,例如pkg-config--cflags-only-I cairo
嗯。。。尝试制作
并安装头,直到它工作为止?通常项目会列出它的依赖项。我假设这是一个XY问题,您试图在不查看依赖项列表的情况下找到编译项目所需的所有包含文件(例如emacs)?谢谢,是的,这就是我的意思,这就是我要找的。但是,这没有多大帮助,因为.d文件只有本地依赖关系。因此,我仍然需要手动添加所有系统包含路径(不在标准目录中)@jenesaisquoi,gcc-MM
忽略在系统头目录中找到的头。这就是它与列出所有包含项的gcc-M的区别。我想你可以在生成makefile后修改它,用后者替换前者。对,我理解。不过,生成的makefile已经具有所有系统路径,这些路径位于由configure
确定的变量中,如DBUS\CFLAGS
。只是似乎没有一个标准的方法,没有目标,来列出它们。我认为会有,例如,生成pkg config
文件--pkg config
手册页甚至说该文件可能由configure
生成,但是没有进一步扩展,我相信autoconf宏是AC\u CHECK\u MODULES
或PKG\u CHECK\u MODULES
创建这些标准*\u CFLAGS
variableSlat注意,gcc-M
是不够的,因为它找不到非标准位置(正如configure
将使用PKG config
),因此,默认情况下,任何包含它返回的系统都会被找到