飞扬的Blog
主页
登录
mfc编译出现dllmain重复定义的解决方法
"date"
:
"2022-11-12 13:29:06"
"classfiy"
:
"c++"
"author"
:
"飞扬"
"viewTimes"
:
242
返回
>这个问题是用了mfc动态库然后在某个文件内引用了原生C函数导致的。(当时是mfc中引用了imgui的文件出现这个错误) #### 具体错误输出: ``` mfcs140ud.lib(dllmodul.obj) : error LNK2005: _DllMain@12 已经在 MSVCRTD.lib(dll_dllmain_stub.obj) 中定义 ``` 打开`项目属性-链接器-常规-显示进度`选择`/verbose:lib` 然后再生成一次会输出链接库的顺序,然后就会发现`MSVCRTD.lib`比`mfcs140ud.lib`先加载,这个就是导致此错误的原因。 #### 解决方案: 打开`项目属性-链接器-输入`设置`忽略特定库`: ``` mfc140ud.lib mfcs140ud.lib ``` 然后添加`附加依赖项`: ``` mfc140ud.lib mfcs140ud.lib ```