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

标签 c++ visual-studio-2012 makefile

使用 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/

相关文章:

c++ - 不确定如何反转我的堆栈?

c++ - boost::asio::deadline_timer 是否为每个计时器使用一个线程?

c++ - 使用 Graphviz for Windows 程序可视化函数调用

c - 独立于源文件名的通用 makefile

c++ - makefile 编译所有子目录中的所有 cpp 文件

macos - Tomcat 连接器 (mod_jk) 出错

C++删除指针数组中的第一个元素会影响后面的元素

c# - 右对齐打印文本

windows-phone-7 - 使用 Visual Studio 2012 创建 WP7.1 Store 包

mysql - 用VB检查MySQL数据库是否存在