#error 请为 _AFXDLL 构建使用 /MD 开关

Posted

技术标签:

【中文标题】#error 请为 _AFXDLL 构建使用 /MD 开关【英文标题】:#error Please use the /MD switch for _AFXDLL builds 【发布时间】:2011-05-12 20:42:00 【问题描述】:

我在 Visual Studio 中遇到错误,Please use the /MD switch for _AFXDLL builds 那么如果我取消定义_AFXDLL,我的程序会出错吗?

【问题讨论】:

【参考方案1】:

CRT 链接和 MFC 链接的设置必须一致。所以,实际上,这个问题有两种可能的答案:

    使用 /MT(属性 -> C/C++ -> 代码生成)和静态 MFC(属性 -> 常规 -> 使用 MFC)

    使用 /MD(属性 -> C/C++ -> 代码生成)和共享 MFC(属性 -> 常规 -> 使用 MFC)

【讨论】:

对于最常见的情况,这应该是解决方案。但是如果您要创建 AFX 扩展 DLL,那么您必须使用 /MD。当 _AFXEXT 被定义为预处理器变量时,您正在创建一个 AFW 扩展 DLL。【参考方案2】:

是的,它会的。您应该做的是转到您的 Visual Studio 项目属性。在配置属性 -> C/C++ -> 代码生成中,确保您为运行时库使用多线程 Dll。

这会解决你的问题。

【讨论】:

以上是关于#error 请为 _AFXDLL 构建使用 /MD 开关的主要内容,如果未能解决你的问题,请参考以下文章

1 IntelliSense: #error 指令: Please use the /MD switch for _AFXDLL builds

MFC:_AFXDLL

添加 _AFXDLL 宏和 clr 支持后找不到 InterlockedAdd64

构建节点 gyp 时出错

Visual Studio 2010:致命错误 C1189:#error

源数据集中的动态工作表名称:Azure 数据工厂上的(Excel(Blob 存储))。 - 错误:请为您的数据集选择一个工作表