【发布时间】:2012-05-19 05:30:03
【问题描述】:
在 Windows 下使用 GCC,我希望能够在 gcc 命令行(或从手动管理的 makefile)上指定要包含在正在编译的文件中的特定包含文件的名称。如我所见,理想情况下,源代码文件将包含类似...
#include INCLUDEFILENAME
...然后在 gcc 命令行上指定的文件名将替换 INCLUDEFILENAME 文本。
似乎我可以通过使用-D 选项(例如-D INCLUDEFILENAME="C:\TestLib\Test1.h")在 gcc 命令行上定义一个名为 INCLUDEFILENAME 的宏来接近实现这一目标,但是当文件名文本被替换为 #include 语句时没有用双引号括起来,如果没有这些,它就不会被识别为要包含的文件。当然……
#include "INCLUDEFILENAME"
...不能作为 INCLUDEFILENAME 工作,然后变成字符串文字并且不会被宏值替换。我尝试了其他指定双引号的方法(\x22、\"、"\"" 等),但这些似乎不适用于 #include 行。
我知道 gcc -include 选项似乎可以强制包含一个文件,而无需在源文件中以任何方式提及它,但我希望源文件表明包含文件是包含在此处,但它的名称是在源文件“外部”指定的(最终,来自 makefile)。
任何关于我如何实现这一目标的建议都将不胜感激。
【问题讨论】: