MSVC如何在编译期间向“输出”窗口输出内容

时间:2009-07-24 11:46:32

标签: c++ visual-c++

有时我会看到某些项目在编译期间会在输出中写入内容。

如何在MSVC ++中实现

谢谢!

4 个答案:

答案 0 :(得分:13)

使用#pragma message例如

#define MESSAGE(t) message(__FILE__ "(" STRINGXXX(__LINE__) ") : " t)
#define STRINGXXX(x) STRINGYYY(x)
#define STRINGYYY(x) #x

然后如果你把

#pragma MESSAGE("TODO: testing")

它将像普通编译器消息一样显示为可点击消息

答案 1 :(得分:6)

您希望在源代码中包含以下内容:

#pragma message("Hello World")

答案 2 :(得分:2)

您可以在其中一个源文件中使用#pragma message在预处理该文件时输出字符串。

此外,当执行自定义,预建或后构建步骤时,“描述”字段将回显到标准输出。

答案 3 :(得分:1)

正如Timo Geusch所说:#pragma message指令用于此。

作为模板元编程的一种奇特的副作用,它也可以使用编译器作为计算器:)

template<int i> struct Message;

template<int i> struct Fac {
   static const int v = i * Fac< i-1 >::v; 
};

template<> struct Fac<1> { static const int v = 1; };

Message< Fac<10>::v > m;

将导致输出消息

Line 10: error: aggregate 'Message<3628800> m' has incomplete type and cannot be defined