C++ - 代码在 Debug 中编译,但不在 Release 中

Posted

技术标签:

【中文标题】C++ - 代码在 Debug 中编译,但不在 Release 中【英文标题】:C++ - Code compiles in Debug but not in Release 【发布时间】:2013-09-27 21:45:44 【问题描述】:

我有一些代码在调试模式下编译没有错误,但是当我尝试在发布代码中编译时,这就是我所拥有的:

2>someSolution.lib(someClass.obj) : 找到 MSIL .netmodule 或使用 /GL 编译的模块;重新启动与 /LTCG 的链接;将 /LTCG 添加到链接命令行以提高链接器性能 2>致命错误C1047:对象或库文件'..\release\someSolution.lib'是用比其他对象更旧的编译器创建的;重建旧对象和库

我尝试使用 Clean Solution 和 Rebuild 解决方案,但没有任何运气。我什至尝试在 Windows 中删除 .lib 文件以强制重建它。

有什么帮助吗?谢谢!

【问题讨论】:

您使用的是哪个 IDE?您没有指定。 对不起,我在 Windows XP 上使用 VS2008 Professional。 【参考方案1】:

我假设这是 Visual Studio?此错误看起来像是您在解决方案的项目中混合了不同的工具集版本。它可能不会在调试模式下发生,因为它不使用 /LTCG(链接时代码生成)选项。

【讨论】:

【参考方案2】:

假设您使用的是 Microsoft Visual Studio,请确认在 项目 > 右键单击 > 首选项 > 链接器(特别是检查动态库路径和依赖项)在发布模式下与调试中的相同,并且您没有忘记包含任何内容。

【讨论】:

【参考方案3】:

原来我需要安装 Visual Studio 2008 SP1。感谢所有在这个问题上提供帮助的人。

【讨论】:

以上是关于C++ - 代码在 Debug 中编译,但不在 Release 中的主要内容,如果未能解决你的问题,请参考以下文章

Xcode STL C++ Debug 编译错误

在 R 中编译 c++ 代码不再起作用

C++调用python的debug版本编译问题

Jni java启动器在c中工作,但不在c++中

如何在vs代码中编译c++?

Boost Multiindex:示例在 cpp 文件中编译,但不在标头中