了解最新公司动态及行业资讯
该问题的反面是“模块计算机类型”X64“与目标计算机类型”X86“冲突”,该问题的解决方法将在本文后面讨论
这两个问题看起来很相似,但是解决方法却大相径庭。 很多博主将两者混淆,无法解决问题
原因分析
先看标题中出现这个问题的原因。 模块计算机类型“X86”是指计算机当前调用的库(lib或dll文件)位数为32位,目标计算机类型“X64”是指当前编译平台环境。 是64位的,两者不匹配,所以有冲突
模块电脑类型“X86”与目标电脑类型“X64”冲突的解决
这个问题一般在你要生成64位的解时出现,因为选择了64位的平台,很明显你要得到64位的解。 网上很多博主给出的解决方案是将VS平台环境调整为64位。 我看到的时候心里是:? ? ? 我? ? ,因为报错已经写明了目标计算机类型“X64”,很明显平台是64位的,没有问题it技术员,不用调整,除非你想生成32位的解决方案,可以改成win32环境。
平台没有问题,剩下的就是模块电脑类型“X86”的问题。 如果是在VS上运行,可以看到报错的文件名。 比如我在构建的时候报错,报错的文件是“.lib”文件,也就是这个文件是32位的。 我在cmd中安装了llvm来编译源码,所以在编译llvm时,系统默认生成了一个32位的库文件,导致在llvm基础上编译时出错。
如果找到原因,就可以解决问题。 重新编译llvm,生成64位的库文件。 在cmd中,如果你使用
cmake -G "14 Win64"
编译的时候,如果仔细看,会发现编译开始的时候有一个提示it技术员,大概意思是“因为没有选择64位或者32位,所以系统会默认编译32位。如果你要编译64位,请在cmd命令行加入-Thost=x64”,根据这个提示,这次用下面这句编译
cmake -Thost=x64 -G " 14 Win64"
可以看到这次调用的是amd64文件夹下的内容,生成了64位的库文件,问题解决!
模块电脑类型“X64”与目标电脑类型“X86”冲突的解决
这个问题比较容易解决。 图书馆没有问题。 只需将平台更改为 x64。 网上有很多解决方案,大概是:
1、“链接器-”高级-“目标计算机”设置为“(/:X64)”
2、“链接器-”命令行-“其他选项”设置为“/:X64/debug”
3、“-” -“ ”设置为“X64”,如果没有,新建一个。
————————————————
原文链接: