我正在使用Visual Studio 2012编写C ++项目。我在构建项目时尝试使用O2或Ox优化。但它引发了一个错误 “cl:命令行错误D8016:'/ Ox'和'/ RTC'命令行选项不兼容。”
我试图从互联网上找到解决方案,但它对我不起作用。
希望有人能帮助我。
最佳
答案 0 :(得分:4)
首先,您的错误代码是错误的。发布时你可能犯了一个错误,因为它应该是D8016,而不是D0816。希望你没有做过其他可能误导我们的错误......
除此之外,错误信息是明确的:
Visual Studio:命令行错误D0816:'/ ox'和'/ RTC'命令行选项不兼容
但是你也可以在这里看到这个错误类型的描述:
简短的回答 - 正如错误所说 - ,你不能同时使用它们。生活充满了妥协,你需要选择其中任何一个对你来说更重要。
解决方案是关闭发布版本的/RTC
,并仅将其用于调试版本以查找问题。有关详细信息,请参阅上面第一个链接中提供的corresponding documentation:
运行时错误检查是一种在运行代码中查找问题的方法;有关更多信息,请参见如何:使用本机运行时检查。
如果使用任何/ RTC编译器选项在命令行编译程序,代码中的任何pragma optimize指令都将无声地失败。这是因为运行时错误检查在发布(优化)版本中无效。
您应该使用/ RTC进行开发构建; / RTC不应用于零售版本。 / RTC不能与编译器优化一起使用(/ O选项(优化代码))。使用/ RTC构建的程序映像会比使用/ Od构建的映像稍微大一些(比使用/ Od构建慢5%)。
答案 1 :(得分:3)
根据MSDN documentation:您无法将/RTC
与/O
Options (Optimize Code)一起使用。
如果要使用优化,请关闭/RTC
标志(或关闭所需运行时检查的优化)。
或者为了避免这一切,创建单独的构建配置,根据需要具有单独的标志(如调试和发布版本)。
答案 2 :(得分:0)