OpenCV2.4.11+VS2012的环境配置+“fatal error LNK1112: 模块计算机类型“X86”与目标计算机类型“x64”冲突”的问题解决
本来OpenCV环境配置的问题是个基础问题,但是步骤有点小烦,所以几乎每次都要百度一下,加上这次遇到的“fatal error LNK1112: 模块计算机类型“X86”与目标计算机类型“x64”冲突”的问题的解决,所幸写一篇博客,以后还要配置环境,自己可以直接看。
首先来说OpenCV环境配置问题:
第一步:给OpenCV压缩包解压到一个磁盘中,任何磁盘都可以,我选择解压在C盘。
第二步:环境变量的配置,计算机—属性—高级系统设置—环境变量
第三步:在系统变量当中找到Path,并且在path双击path,开启编辑模式。在path当中添加OpenCV的相关路径,根据文件解压的位置做出相应的更改,比如我的就是:
C:\opencv\build\x86\vc11\bin C:\opencv\build\x64\vc11\bin 因为有时候会用到x64位编译器,所以两个都添加上。
第四步:打开VS2012新建一个工程,然后找到属性管理器,点击Debug栏目,右键添加新项目属性表,并且进行相关命名,因为以后会反复用到这个东西,所以名字要特别一点。
第五步:双击新建的属性表,添加相应的目录。
通用属性— VC++目录 — 包含目录: (根据解压文件的位置)例如我的分别是:
C:\opencv\build\include
C:\opencv\build\include\opencv
C:\opencv\build\include\opencv2
然后是 库目录 也是根据解压位置添加的:
C:\opencv\build\x86\vc11\lib
第六步: 添加附加依赖项:连接器——输入——添加附加依赖项 ,然后将下面文件名放进去。
opencv_core2411d.lib
opencv_imgproc2411d.lib
opencv_highgui2411d.lib
opencv_ml2411d.lib
opencv_video2411d.lib
opencv_features2d2411d.lib
opencv_calib3d2411d.lib
opencv_objdetect2411d.lib
opencv_contrib2411d.lib
opencv_legacy2411d.lib
opencv_flann2411d.lib
好了,至此OpenCV环境已经配好了,可以用下面的代码跑一下试试有没有成功:
#include<opencv2\core\core.hpp>
#include<opencv2\opencv.hpp>
#include<opencv2\imgproc\imgproc.hpp>
#include<opencv2\highgui\highgui.hpp> using namespace std;
using namespace cv; int main(){
Mat img=imread("F:/2.jpg"); //图片路径
if(img.empty()){
return -;
}
imshow("hehe",img);
waitKey();
return ;
}
Release模式和Debug模式差不多,只不过在添加附加依赖项的时候,将附件依赖项的文件名后面的“d”给去掉。
现在我们再讨论一下fatal error LNK1112: 模块计算机类型“X86”与目标计算机类型“x64”冲突问题的解决:即我们需要再64位环境下编译运行,但是出现这个问题。
首先要确保这两个地方没有问题:
1:项目解决方案——属性——连接器——高级——目标计算机,看目标计算机是否是MachineX64,不是的话更改为。
2:配置管理器——新建(有的话直接选择)x64
这两个搞定之后,试一试能不能跑,不能跑的话,我们回到刚刚设置建立的OpenCV属性表当中,注意是修改DebugX64位下面的属性表,将我们的库目录的路径更改一下,
将原来的 C:\opencv\build\x86\vc11\lib 改为 C:\opencv\build\x64\vc11\lib,这样基本就没问题。Relaese方面一样。
========================更新一下===============================================================
OpenCV 3 +VS2017 一个小问题:由于找不到opencv_world331d.dll,程度无法应用。
解决:将opencv_world331d.dll 拷贝到Windows/System32里面。
OpenCV2.4.11+VS2012的环境配置+“fatal error LNK1112: 模块计算机类型“X86”与目标计算机类型“x64”冲突”的问题解决的更多相关文章
- OpenCV3.42+VS2017配置+模块计算机类型“X86”与目标计算机类型“x64”冲突”的问题解决
目录 OpenCV3.42+VS2017配置 Visual Studio 2017 第三方依赖设置,附加依赖项和附加库目录 "fatal error LNK1112: 模块计算机类型&quo ...
- [转]fatal error LNK1112: 模块计算机类型“X86”与目标计算机类型“x64”冲突
来自--------------------- 原文:https://blog.csdn.net/qtbmp/article/details/7273191?utm_source=copy win7 ...
- fatal error LNK1112: 模块计算机类型“X86”与目标计算机类型“x64”冲突——我的解决方案
本文转载于:http://blog.csdn.net/tfy1028/article/details/8660823 win7 下,安装的VS2010,然后搭配opencv2.4.3运行,报错为:fa ...
- OpenCV2.4.13+VS2012开发环境配置
1.下载和安装OpenCV SDK 在OpenCV官网的下载页面: http://opencv.org/downloads.html 找到对应OpenCV for Windows版本下载.目前(2 ...
- VS2013环境里安装QT插件-“X86”与目标计算机类型“x64”冲突
在VS2013环境里搭载QT老是出现模块计算机类型“X86”与目标计算机类型“x64”冲突 2.解决方案2.1 项目右键,属性>配置管理选择>x64,没有的话新建:2.2 项目右键,属性 ...
- C++的Public.lib(Public.dll) : fatal error LNK1112: module machine type 'X86' conflicts with target machine type 'x64'
今天开始编译网游服务器,找前辈借来批处理文件,版本控制上拿下代码,库等一系列资源,尼玛啊,编译出错: Public.lib(Public.dll) : fatal error LNK1112: mod ...
- fatal error LNK1112: module machine type 'X86' conflicts with target machine type 'x64'
xxxxxx.lib(xxxxxx.obj) : fatal error LNK1112: module machine type 'X86' conflicts with target machin ...
- 编译Cython代码时遇到的问题: fatal error LNK1112: module machine type 'x64' conflicts with target machine type 'X86'
使用python setup.py build_ext --inplace命令编译cython代码, 出现以下错误: Compiling cython_example.pyx because it c ...
- vs2013+opencv2.4.11+Qt5.5.1配置
注意本教程配置环境:win7 32位 如果只配置vs2013+opencv2.4.11,参考http://jingyan.baidu.com/article/ff411625b1311a12e4823 ...
随机推荐
- [Xcode 实际操作]九、实用进阶-(9)陀螺仪设备的使用
目录:[Swift]Xcode实际操作 本文将演示陀螺仪设备的使用. 在项目导航区,打开视图控制器的代码文件[ViewController.swift] import UIKit //导入需要用到的C ...
- Java 虚拟机(Java Virtual Machine)
Java 编译器将 Java 程序编译成虚拟机能够识别的二进制代码,这种代码称为字节码(Bytecode).字节码就是虚拟机的机器指令,它与平台无关,有统一的格式,不依赖于具体的硬件环境,只运行在 J ...
- A - Musical Theme + 二分
#include <bits/stdc++.h> using namespace std; #define LS 2*i #define RS 2*i+1 #define UP(i,x,y ...
- ios开发static关键字的理解
:static关键字修饰局部变量::当static关键字修饰局部变量时,该局部变量只会初始化一次,在系统中只有一份内存 :static关键字不可以改变局部变量的作用域,但是可延长局部变量的生命周期,该 ...
- JMeter提取和重用作为变量 - 具有更多提取器
这是我们最受欢迎的博文,我们添加了更多提取器.这篇文章解释了如何使用正则表达式提取器从第一个请求的响应中提取密钥,并将提取的密钥用于后续请求.我们称之为JMeter Extract并重复使用. 现在您 ...
- GYM 101889B(找规律)
乍一看很唬人,草稿纸上多写几个发现规律:两个元音算一层,像剥洋葱一样,外面的其实都动不了,能变顺序的只有最里层的辅音. inline bool ok(char ch) { return ch == ' ...
- Executor等系列概念介绍
这里对几个常见的的名词进行介绍 Executor 这是个接口,只声明了一个方法—— public interface Executor { void execute(Runnable command) ...
- 098 Validate Binary Search Tree 验证二叉搜索树
给定一个二叉树,判断其是否是一个有效的二叉搜索树.一个二叉搜索树有如下定义: 左子树只包含小于当前节点的数. 右子树只包含大于当前节点的数. 所有子树自身必须也是二叉搜索树.示例 1 ...
- C#私有的构造函数的作用
C#私有的构造函数的作用:当类的构造函数是私有的时候,也已防止C1 c1=new C1();实例化类.常见的应用是工具类和单例模式. using System;using System.Collect ...
- 原生ajax提交php后台接收不到问题
var xmlHttp; if (window.ActiveXObject) { xmlHttp = new ActiveXObject("Microsoft.XMLHTTP"); ...