模块计算机类型“X86”与目标计算机类型“X64”冲突解决方法

先说方法:把VS自带的库目录全部删除,然后加上:$(LibraryPath)

网上查了很多方法,对我都没有用。后来自己找到解决办法了,这里分享给大家。

我想编译64位的程序,于是选择了debug + x64的编译环境。

我报的错误是:msvcprtd.lib(MSVCP110D.dll) : fatal error LNK1112:模块计算机类型“X86”与目标计算机类型“X64”冲突。

首先,产生这个问题的原因是因为静态库(.lib)文件的位数和我们选择的目标位数不一样,我们需要使用正确类型的静态库才行。

打开属性页面会看到,在库目录中,除了我们自己编辑的目录外,还有VS自带的目录。比如:$(WindowsSDK_LibraryPath_x86);

网上说把x86改成x64就可以了,但是我失败了。

最终解决方法是把VS自带的库目录全部删除,然后新增这一项:$(LibraryPath)

这样就可以了。

其实我还尝试过另外的方法,就是把报错的那些静态库文件记下来,然后在计算机里找到64位的对应的库文件,然后单独放到一个文件夹,加入属性页的库目录,但是要放在第一项。这样不会报错,但是后续的操作中却出现了一些很奇怪的错误,比如报了:

错误 C1189 #error: The C++ Standard Library forbids macroizing keywords. Enable warning C4005 to find the forbidden macro.

然后还有一些恶心的无法识别的外部符号的错误。最后找到了那个配置方法才解决的。

这个方法不一定都适用,但不妨一试。

PS:VS环境配置真恶心。本以为用VS快一年,总不会在环境上栽那么多跟头了,结果一直在环境上面和VS斗智斗勇,心累...

评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值