使用 gcc 和 Makefiles,我能够将一些编译器选项嵌入到一个字符串中,供可执行文件访问,如下所示:
生成文件:
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 专业版 2012
英特尔 C++ Composer XE 2013 SP1
最佳答案
是的,有点。您可以在包含字符串的项目属性中定义一个宏,并在其中嵌入您想要的任何项目属性值。然而,这些属性虽然用于构造命令行,但它们本身并不是实际的命令行标志。
例如,在 C/C++ 预处理器项目属性中添加以下内容作为预处理器定义:
CXXCOMMAND="%(Optimization)"
然后 CXXCOMMAND
是 "MinSpace"
用于构建集以使用/O1 进行编译。
注意只有an even number of quotes在你的预处理器中定义...
关于c++ - 在可执行文件中嵌入一串编译器选项 (Visual Studio),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31192509/