使用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
答案 0 :(得分:0)
是的,有点儿。您可以在项目属性中定义包含字符串的宏,并在其中嵌入您想要的任何项目属性值。但是,这些属性虽然用于构造命令行,但它们本身并不是实际的命令行标志。
例如,在C / C ++预处理器项目属性中添加以下作为预处理器定义:
CXXCOMMAND="%(Optimization)"
然后CXXCOMMAND
为"MinSpace"
,用于使用/ O1编译的构建集。
请注意,预处理器中只有an even number of quotes定义...