msvcprtd.lib(MSVCP100D.dll):致命错误LNK1112:模块计算机类型"X86"与目标计算机类型"x64"冲突



我创建了一个vs2010 win32程序(操作系统:win8 -64bit)

然后,我试着把这个win32程序转换成x64,这样做:

 Configuration Manager -> new solution platform (select x64) -> copy settings from win32

vs2010在之前的win32程序的基础上创建了一个新的x64程序。

然而,当我试图编译并运行x64程序时,有一个错误:msvcprt .lib(msvcp100 .dll):致命错误LNK1112:模块机器类型'X86'与目标机器类型'x64'冲突

通过重命名win32版本和x64版本的msvcprtd。我发现该程序仍在使用win32 msvcprtd.lib。

我检查并找到了msvcprtd。lib在$(VCInstallDir)libamd64中。此外:

Library Directories -> Inherited values包含了所有必需的目录(我认为):

$(VCInstallDir)libamd64
$(VCInstallDir)atlmfclibamd64
$(WindowsSdkDir)libx64

我还检查了该程序使用的第三方库和dll是x64版本的。

我的问题是为什么程序仍然使用win32 msvcprtd。如何解决这个问题?

在项目库目录中,确保您更改了

$(VCInstallDir)lib$(VCInstallDir)atlmfclib

$(VCInstallDir)libamd64$(VCInstallDir)atlmfclibamd64

搜索后,我遇到了一个有用的页面MSDN信息。"这是一个已知的问题,有时VC会从旧版本的VC中拾取某些设置,并导致这些问题。"

对于我来说,添加以下内容是有效的:

C:Program Files (x86)Microsoft Visual Studio2017CommunityVCToolsMSVC14.16.27023libx64

无论如何,不要犹豫搜索msvcprtd。lib文件直接从Visual Studio安装目录。

我也遇到过同样的问题。当我们为X64平台创建新项目时,它很少出现,偶尔也会出现。

这是解决方案:对于X64平台在配置属性中-->

1。包含目录-> $(VCInstallDir)PlatformSDK Include;$(IncludePath);

2。库目录-> $(VCInstallDir)PlatformSDKlib;$(LibraryPath);

相关内容

  • 没有找到相关文章

最新更新