如何验证编译时在 msvc 2010 c++ 项目中是不是正确设置了编译器选项?
Posted
技术标签:
【中文标题】如何验证编译时在 msvc 2010 c++ 项目中是不是正确设置了编译器选项?【英文标题】:How do I verify that compiler options have been set correctly in msvc 2010 c++ project at compile time?如何验证编译时在 msvc 2010 c++ 项目中是否正确设置了编译器选项? 【发布时间】:2013-08-18 14:49:54 【问题描述】:我一直在玩 PDCurses 并且遇到了一些问题。最终我登陆了here,它解决了我的问题。
基本上,我的 PDCurses 项目是使用 UNICODE CHARACTER 集编译的。结果,块字符显示为大写 U。将库设置为 NOT SET 作为字符集解决了这个问题。
是否有一种技术可以让我在 PDCurses 的源代码中嵌入一些东西,以检测选择了哪个字符集选项并在设置不正确时执行编译时断言?
我查看了编译指示列表。一致性选项和运行时检查似乎做了类似的事情。
【问题讨论】:
AFAIK,没有编译器选项“字符集”。在 Visual Studio 中选择此开关会生成 _UNICODE 宏,可以在程序文本中进行测试。 测试 _MBCS(多字节)和 _UNICODE 宏。如果它们都没有定义,则不选择字符集。 【参考方案1】:它似乎工作。谢谢
#ifdef _UNICODE
#error "Unicode may not be set for this library"
#else
#ifdef _MBCS
#error "Multi Byte may not be set for this libary"
#endif
#endif
【讨论】:
以上是关于如何验证编译时在 msvc 2010 c++ 项目中是不是正确设置了编译器选项?的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 MSVC 在 C++ 中定义外部 C 结构返回函数?
MSVC10 Visual Studio 2010 是不是支持 C++ 显式转换运算符
如何使用 system() 函数 (MSVC) 编译 c++ 代码?