在Windows下使用GCC,我希望能够指定gcc命令行上(或从手动管理的makefile文件)具体的include文件名包含在文件被编译。 在我看来,最好的源代码文件将包含行类似...
#include INCLUDEFILENAME
...然后在gcc命令行上指定的文件名会被代替INCLUDEFILENAME
文本。
看来我可以得到接近使用定义gcc命令行上一个名为INCLUDEFILENAME宏实现这一-D
选项(例如-D INCLUDEFILENAME="C:\TestLib\Test1.h"
),但是当文件名的文本被取代入#include
声明它没有双引号括起来,没有这些就不会被识别为被包含的文件。 当然…
#include "INCLUDEFILENAME"
......不工作的INCLUDEFILENAME然后成为一个字符串文字,没有得到由宏值替换。 我试图指定双引号的其他方式( \x22
, \"
"\""
等),但这些似乎并没有对工作#include
线。
我知道的是gcc的-include
这似乎可以强制将包含没有它在源文件以任何方式被提到一个文件选项,但我宁愿源文件表明,一个包含文件是包括在这里,但它的名称被指定“外部”源文件(最终,从生成文件)。
我如何能做到这一点的任何建议,将不胜感激。