【问题标题】: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 但它仍然无法正常工作......如果你们知道任何解决方案请帮我。

【问题讨论】:

  • 我厌倦了那个错误:) 如果你正确地按照说明操作,它应该可以工作。我过去做过很多次。每当您更改设置时,也要尝试重建所有内容。

标签: visual-studio-2008 mfc


【解决方案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 这些库
    猜你喜欢
    • 1970-01-01
    • 2023-01-23
    • 1970-01-01
    • 1970-01-01
    • 2012-03-12
    • 1970-01-01
    • 2020-07-17
    • 2011-10-27
    • 1970-01-01
    相关资源
    最近更新 更多