LNK1112:模块机器类型“x64”与目标机器类型“x86”冲突-opencv 构建

Posted

技术标签:

【中文标题】LNK1112:模块机器类型“x64”与目标机器类型“x86”冲突-opencv 构建【英文标题】:LNK1112: module machine type 'x64' conflicts with target machine type 'x86' - opencv build 【发布时间】:2019-02-11 12:31:04 【问题描述】:

根据link,我一直在尝试在 Windows 中安装 Opencv。我假设link 有助于为 c++ 和 python 安装 opencv。

关于我的系统的更多细节:

    ** Visual studio - 15.9.6
    ** Windows 10- 64 bit

    ** Complete error - 1>------ Build started: Project: gen_opencv_python_source, Configuration: Release Win32 ------
    2>------ Build started: Project: opencv_python3, Configuration: Release Win32 ------
    2>python36.lib(python36.dll) : fatal error LNK1112: module machine type 'x64' conflicts with target machine type 'x86'
    2>Done building project "opencv_python3.vcxproj" -- FAILED.

一位受欢迎的answer 对此问题提出了以下建议:

    Check your properties options in your linker settings at: Properties > 
   Configuration Properties > Linker > Advanced > Target Machine. Select 
   MachineX64 if you are targeting a 64 bit build, or MachineX86 if you are 
   making a 32 bit build.

但是,从下图中,除了 Win32 之外,我没有任何其他选择。并且看起来 VS 没有 64 位版本。我该如何解决这个问题,我在上一个答案中遗漏了什么?如果问题是微不足道的,请道歉。

更新

我使用的 python 版本是 3.6.5 64 位。 VS是32位的,这可能是问题吗?

【问题讨论】:

【参考方案1】:

当您在 CMake 中选择 Visual Studio 版本(步骤 7.4.a)时,它需要选择 64 位编译器:“Visual Studio 15 64”而不是“Visual Studio 15”。

【讨论】:

工作就像一个魅力!谢谢!

以上是关于LNK1112:模块机器类型“x64”与目标机器类型“x86”冲突-opencv 构建的主要内容,如果未能解决你的问题,请参考以下文章

麻烦构建旧版本的 SIP:致命错误 LNK1112:模块机器类型“x64”与目标机器类型“X86”冲突

尝试在 64 位机器上将 Detours.lib 编译为 32 位:LNK1112:模块机器类型“x86”与目标机器类型“x64”冲突

致命错误 LNK1112:模块机器类型“x64”与通过 vcvarsall.bat x86 运行构建的目标机器类型“X86”冲突

致命错误 LNK1112:模块机器类型“x64”与通过 vcvarsall.bat x86 运行构建的目标机器类型“X86”冲突

QtCreator上写的HelloWorld报错:LNK1112: 模块计算机类型“X86”与目标计算机类型“x64”冲突

模块机器“x64”与目标机器“x86”冲突