抱歉我的英语不好。
例如:
//
// File : Main.cpp
//
#include <stdlib.h>
int main()
{
printf(TEST_DEFINE);
return (EXIT_SUCCESS);
}
标题:
//
// File : test_define.h
//
#ifndef TEST_DEFINE_H_INCLUDED
#define TEST_DEFINE_H_INCLUDED
#define TEST_DEFINE
#endif
我想通过编译器或其他程序包含该 header 。我不想在 CPP 文件中包含此 header 。
我该如何处理?我对所有建议持开放态度。
这种情况非常棘手,但对于我的 POC 程序来说是必要的。
最佳答案
GCC 有一个选项 -include
file 这会导致预处理器包含 header ,就好像程序的第一行说 #include "file"
参见 manual
例如给定你的 main 的固定版本(应该是 #include <stdio.h>
):
#include <stdlib.h>
#include <stdio.h>
int main()
{
printf(TEST_DEFINE);
return (EXIT_SUCCESS);
}
和你的标题:
//
// File : test_define.h
//
#ifndef TEST_DEFINE_H_INCLUDED
#define TEST_DEFINE_H_INCLUDED
#define TEST_DEFINE "hello\n"
#endif
然后我可以这样使用它:
$ g++ -include test_define.h main.cpp -o main
$ ./main
hello
关于C++,如何动态包含.h,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12969672/