C++ 添加#定义何时使用特定标志

C++ 添加#定义何时使用特定标志,c++,gcc,static-libraries,autotools,C++,Gcc,Static Libraries,Autotools,当我使用特定标志时,我想在带有autotools的头文件中添加一个#define FOO代码 我的项目使用header创建了一个静态库,例如使用内联函数。如果我使用-D选项,它将在创建时使用,但是我必须在每次编译时使用这个库添加它,这是我想要避免的 如何执行此操作?我认为最好的办法是从现有文件生成所需的头文件。下面的shell命令可以实现此目的: (echo "#define FOO" ; cat myheader_pregen.hpp) > myheader.hpp 您可以将上述内容作

当我使用特定标志时,我想在带有autotools的头文件中添加一个
#define FOO
代码

我的项目使用header创建了一个静态库,例如使用内联函数。如果我使用-D选项,它将在创建时使用,但是我必须在每次编译时使用这个库添加它,这是我想要避免的


如何执行此操作?

我认为最好的办法是从现有文件生成所需的头文件。下面的shell命令可以实现此目的:

(echo "#define FOO" ; cat myheader_pregen.hpp) > myheader.hpp

您可以将上述内容作为脚本合并到autotools中,使用

我认为您最好的选择是从预先存在的文件生成所需的头文件。下面的shell命令可以实现此目的:

(echo "#define FOO" ; cat myheader_pregen.hpp) > myheader.hpp

您可以将上述内容作为脚本合并到autotools中,使用

“因为它位于标题上,所以为了创建静态库,我不能使用-D选项。”这句话不解析。您能更详细地解释一下为什么不能使用-D吗?@n.m.我的项目使用header创建了一个静态库,例如使用内联函数。如果我使用-D选项,它将在创建时使用,但我必须在每次编译时使用此库添加它,这是我想要避免的。这是一个更好的解释。@n.m.我编辑了问题
:-)
“因为它位于标题上,以便创建静态库,所以我不能使用-D选项。”这句话不懂语法。您能更详细地解释一下为什么不能使用-D吗?@n.m.我的项目使用header创建了一个静态库,例如使用内联函数。如果我使用-D选项,它将在创建时使用,但我必须在每次使用此库编译时添加它,这是我想要避免的。这是一个更好的解释。@n.m.我编辑了问题
:-)
autoconf是否为您生成config.h?这似乎是一个将这样的#定义粘贴在其中的地方。autoconf不是为您生成config.h吗?这似乎是一个让人喜欢的地方。