无法在发布模式下构建我的项目!请帮助我
Posted
技术标签:
【中文标题】无法在发布模式下构建我的项目!请帮助我【英文标题】:Not able to built my project in Release mode!please help me 【发布时间】:2010-02-01 05:30:01 【问题描述】:我在这里遇到了一个非常困难的情况......实际上我正在开发一个 MFC 项目。在我的项目中,我有另一个小项目作为我的主项目的 lib 输入。我设置了“使用 MFC”- - 在我的项目设置中作为“在共享 Dll 中使用 MFC”......它工作得很好......但是当我设置“使用 MFC”时 - 作为“在静态 dll 中使用 MFC”......我无法构建项目都处于调试/发布模式。我不想设置“使用 MFC 作为共享 Dll”的原因是因为我希望我的项目在不支持 Visual Studio 的机器上运行......我收到以下错误: 错误 LNK2005:“void * __cdecl operator new(unsigned int)”(??2@YAPAXI@Z) 已在 Client7z.lib(NewHandler.obj) uafxcwd.lib SelfExtractor 中定义
我读了一篇文章http://support.microsoft.com/kb/148652[^]..根据他们的建议,我试图忽略以下库 Nafxcwd.lib;Libcmtd.lib 但它仍然无法正常工作......如果你们知道任何解决方案请帮我。
【问题讨论】:
我厌倦了那个错误:) 如果你正确地按照说明操作,它应该可以工作。我过去做过很多次。每当您更改设置时,也要尝试重建所有内容。 【参考方案1】:在调试模式下查看这些设置:
Link->General:
Object/Libary modules: Nafxcwd.lib Libcmtd.lib Client7z.lib
Link->Input:
Object/Libary modules: Nafxcwd.lib Libcmtd.lib Client7z.lib
Ignore libraries: libcmtd.lib,libcd.lib
一个疯狂的猜测,但至少你可以尝试一下。
【讨论】:
【参考方案2】:您还必须将 C 运行时更改为静态版本。它在 C/C++ -> 代码生成 -> 运行时库中。
将其设置为 /MT(发布)或 /MTd(调试)。
【讨论】:
我做到了..但它仍然是同样的错误......而且疯狂的是如果我将我的项目设置为发布模式它仍然 /MT(Debug)..我也尝试了所有其他模式..它对我没有帮助 您必须链接了其他库,这导致了额外的依赖关系。尝试消除任何“附加包含”和“忽略库”。另一种方法是强制链接,就像 Nick D 的示例一样。 我所做的是我包含另一个库文件作为我的项目的输入(需要它)......现在我所做的是我删除了该库输入并将其转换为一个 dll 和将所需功能从该模块导出到我的项目...及其工作的 gr8...无需排除 Nafxcwd.lib Libcmtd.lib 这些库以上是关于无法在发布模式下构建我的项目!请帮助我的主要内容,如果未能解决你的问题,请参考以下文章