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

Embed a string of compiler options in an executable (Visual Studio)

本文关键字:编译器 选项 字符串 可执行文件 Visual Studio      更新时间:2023-10-16

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

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

是的,有点像。可以在包含字符串的项目特性中定义宏,并在其中嵌入所需的任何项目特性值。但是,这些属性在用于构造命令行时,本身并不是实际的命令行标志。

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

CXXCOMMAND="%(Optimization)"

CXXCOMMAND是要使用/O1编译的构建集的"MinSpace"

只是要注意在预处理器定义中只有偶数个引号。。。