在可执行文件中嵌入一串编译器选项(Visual Studio)

时间:2015-07-02 18:57:37

标签: c++ visual-studio-2012 makefile

使用gcc和Makefile,我能够将一些编译器选项嵌入到字符串中,以便可执行文件访问,如下所示:

生成文件:

CXX=/usr/bin/g++
CXXFLAGS=-ansi -Wall -c
CXXDEFINES='-DCXXCOMMAND="$(CXX) $(CXXFLAGS)"'

C ++文件:

#ifdef CXXCOMMAND
    std::cout << "C++ Command: " << CXXCOMMAND << std::endl;
#endif

然后我可以从可执行文件中将其打印到控制台。

是否可以在Visual Studio中执行此操作?具体来说,我希望加入优化标志(/ O2,/ Od等等),但我可以访问的越多,对我来说效果会越好。

Microsoft Visual Studio Professional 2012
英特尔C ++ Composer XE 2013 SP1

1 个答案:

答案 0 :(得分:0)

是的,有点儿。您可以在项目属性中定义包含字符串的宏,并在其中嵌入您想要的任何项目属性值。但是,这些属性虽然用于构造命令行,但它们本身并不是实际的命令行标志。

例如,在C / C ++预处理器项目属性中添加以下作为预处理器定义:

CXXCOMMAND="%(Optimization)"

然后CXXCOMMAND"MinSpace",用于使用/ O1编译的构建集。

请注意,预处理器中只有an even number of quotes定义...