切换到/ MDd时_initp_misc_cfltcvt_tab和_FPinit [英] _initp_misc_cfltcvt_tab and _FPinit when switching to /MDd
问题描述
我将Visual C ++ 2012项目从多线程调试(/ MTd)切换到多线程调试DLL(/ MDd)。该项目是C ++ .vcxproj和Intel Fortran(.vfproj)项目的混合体。在重建之后我得到以下错误。
$
在CRT源代码中,我看到如果CRTDLL符号未定义,则在crt0dat.c中定义了有问题的符号。在编译主应用程序时,如何确保使用CRTDLL获取crt0dat?
其他任何建议如何排除故障?
50> cmain.obj:错误LNK2019:函数wWinMain中引用的未解析的外部符号_initp_misc_cfltcvt_tab
50> cmain.obj:错误LNK2001:未解析的外部符号_FPinit
50> C:\ spm\git \clones\SPM80_dll \ MSBuild \ x64 \ _dll_debug \ SPM_dll_debug_x64.exe:致命错误LNK1120:2个未解析的外部因素
OZ
您好OZ,
这个问题似乎是由使用不同版本的运行时库引起的。那么你在项目中使用任何库或DLL吗?如果是,请使用相同的运行时库构建所有项目,项目属性 - > C ++ - >代码生成 - >运行时
库。
有关 c ompiling和链接问题的详细信息
引起的问题运行时库,请检查此doucment。
祝你好运,
I switched my Visual C++ 2012 project from Multi-threaded Debug (/MTd) to Multi-threaded Debug DLL (/MDd). The project is a mixture of C++ .vcxproj and Intel Fortran (.vfproj) projects. After all is rebuild I get the errors below.
In CRT source code I see the offending symbols are defined in crt0dat.c if CRTDLL symbol is _not_ defined. How do I make sure I get crt0dat with CRTDLL when compiling main application?
Any other suggestions how do I troubleshoot this?
50>cmain.obj : error LNK2019: unresolved external symbol _initp_misc_cfltcvt_tab referenced in function wWinMain
50>cmain.obj : error LNK2001: unresolved external symbol _FPinit
50>C:\spm\git\clones\SPM80_dll\MSBuild\x64\dll_debug\SPM_dll_debug_x64.exe : fatal error LNK1120: 2 unresolved externals
O.Z.
Hi O.Z,
It seems that this issue is caused by using different version of runtime library. So are you using any library or dll in your project? If yes, please build all your project with the same runtime library, Project properties-> C++->Code generation->runtime library.
For more information about compiling and linking Problems caused by runtime library, please check this doucment.
Best regards,
这篇关于切换到/ MDd时_initp_misc_cfltcvt_tab和_FPinit的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!