写在前面:本博文是在我现有知识状态下写的, 我现在是小白, 有错误欢迎指正。 以后假如接触到更合理的见解, 我一定会修正这篇博文的。
本文原是在我本地笔记中待着的, 写于2016/05/17。

下载了OpenCV的Windows的安装版文件,运行该可执行程序将OpenCV解压到某个位置,设置好OpenCV相关的环境变量并重启,接下来可以配置Visual Studio里面的属性,检查配置无误,然后开始编写cpp来测试OpenCV环境搭建的最终结果,可是出现了下面的错误:

错误描述:
>LINK : fatal error LNK1123: 转换到 COFF 期间失败: 文件无效或损坏

现象解释:
这个错误比较少见,因为往往做了某些事情的电脑才会出现这个错误,这个事件很大概率上是:电脑上先装了Visual Studio 2010,在没卸载2010的情况下安装了Visual Studio 2012,之后又把Visual Studio 2012删除了,只用Visual Studio 2010这个版本。

原因解释:
我电脑Windows 7 x64系统,没安装Visual Studio 2010之前,电脑上的.net framework仅有3.5版本,安装Visual Studio 2010时安装了.net framework 4.0,再当安装VS2012之后,.net
framework 4.0会被替换为.net framework 4.5。 卸载VS2012时,.net framework 4.5不会被卸载。   之后紧接着又装上了Visual Studio 2010,它会安装.net framework 4.0,这导致了系统里面.net framework是4.5,VS2010里面.net framework是4.0。具体到文件上,就是cvtres.exe这个程序出现了两个版本的。

说的再清楚点就是C:\Windows\Microsoft.NET\Framework\v4.0.30319下的cvtres.exe(其对应.net framework 4.5), 跟(vs2010安装的位置)...\Microsoft Visual Studio 10.0\VC\bin下的cvtres.exe (其对应.net framework 4.0)产生了冲突。
当VS中程序运行时,VS不知道要用哪个cvtres.exe,导致了错误。

解决:
$约定$      C:\Windows\Microsoft.NET\Framework\v4.0.30319 目录 为  $系统目录$
           (vs2010安装的位置)...\Microsoft Visual Studio 10.0\VC\bin  为  $VS目录$



1、将$系统目录$下的.net framework 4.5更改为4.0,就是卸载.net framework 4.5这个环境包再安装上.net framework 4.0。  这个方法是将$系统目录$下的.net framework版本(版本为4.5)向$VS目录$里的.net
frameword版本(版本为4.0)看齐。
2、一个暴力方法让VS2010使用.net framework 4.5的cvtres.exe程序  把VS2010里面的.net framework 4.0的cvtres.exe程序给损坏掉使之无效。具体的说就是重命名或删除$VS目录$下的cvtres.exe,这样$系统目录$中的cvtres.exe文件就可以被VS2010使用。

3、类似于方法二,也是要使用.net framework 4.5 版本, 但是这里走常规路线, 不搞破坏。   安装VS2010 SP1,它会安装.NET 4.5(也就是把$VS目录$下的.net framework版本变为4.5),这样就非暴力的解决了$系统目录$和$VS目录$下.net
framework版本的冲突。

注意:安装VS 2010 SP1 时会移除64-bit 编译器,通过安装 VS 2010 SP1 compiler pack 能够重新获得。
 

多版本VisualStudio导致的.net版本问题的更多相关文章

  1. angular.js使用ui-router注入报错,这里是版本问题导致的

    报错如下: common.ts:604Uncaught SyntaxError: Unexpected token ) stateEvents.ts:211Uncaught SyntaxError: ...

  2. 生成war的jdk版本高于tomcat使用的jdk版本,导致项目不能正常被访问

    记录一个耽误30分钟的一个坑: 生成war的jdk版本高于tomcat使用的jdk版本,导致项目不能正常被访问 报404错误

  3. as版本切换导致项目损坏,无法启动。环境依赖混乱

    以下方法都不管用, 新建一个项目setting的 把main拷过去就行了!!!! Error:(5, 0) Gradle DSL method not found: 'google()'Possibl ...

  4. zookeeper 版本不一致导致不断重连

    在使用kafka 和zookeeper 实现实时分析程序时,由于zookeeper部署版本和分析程序导入jar包的版本不一致,导致了当实时分析程序从远程服务器连接kafka集群的zookeeper时报 ...

  5. centos7安装Python3的过程中会和Python2.7版本冲突导致yum版本比对应,致使yum不能使用的问题。

    centos7安装Python3的过程中会和Python2.7版本冲突导致yum版本比对应,致使yum不能使用的问题. 原因:yum调用Python,启动程/usr/bin/yum就是一个python ...

  6. oracle:数据库版本问题导致的bug

    公司开发出来的系统,由于各现场oracle数据库版本有10.2.0.4.11.2.0.1.11.2.0.3.11.2.0.4: 进而会导致版本不一导致错误问题.下面列举2个: 1.wm_concat ...

  7. thrift 版本不一致导致 @Override 报错

    thrift 版本不一致导致 @Override 报错 学习了:http://blog.csdn.net/antony1776/article/details/78920888 版本不一致导致的: 在 ...

  8. ride.py在运行python3.×版本后导致无法运行及解决办法

    最近一直在自学python自动化,网上看到rf框架挺适合初学自动化测试,于是通过虫师的搭建了rf框架, 但是在使用过程中遇到了一个问题,在网上没有找到明确解决办法于是想到记录一下 之前为了搭建rf框架 ...

  9. Maven版本问题导致的 unable to import maven project, see logs for details. 问题

    新电脑安装了基础环境后,jdk,maven也都安装好了,idea安装后,导入Java项目一切正常,但是idea中code一直导入import依赖包出现问题,错误提示:unable to import ...

随机推荐

  1. 在ssm框架中前后台数据交互均使用json格式

    前后台数据交互均使用json. 框架ssm(spring+springmvc+mybatis) @RequestBody注解实现接收http请求的json数据,将json数据转换为java对象,注解加 ...

  2. SVN Upgrade working copy

    出现这个的原因是因为你机器上安装的svn客户端版本过高,而你从别的地方拷贝代码中的svn版本过低,点击SVN Upgrade working copy可以将代码中的svn版本升级.

  3. Problem B: 开个餐馆算算账

    Description 小明创业了!他开了一家餐馆,每天客人还挺多的.每天下班后,他都要算算今天总共收入多少钱,但是手工算太麻烦了,所以他来向你求助了. Input 第1行N>0,表示餐馆提供N ...

  4. Xcode修改个性化注释

    1.首先找到Xcode进入包内容 2.依次进入/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Develo ...

  5. KVM管理平台openebula安装

    1.1opennebula控制台的安装 (如果要添加映像需要给200G以上给/var/lib/one,本文是共享/var/lib/one实现监控,用映像出创建虚拟机原理是从opennebula控制平台 ...

  6. elasticsearch 基础语句

    1.  doucument id 的两种生成方式 自动生成document id自动生成的id,长度为20个字符,URL安全,base64编码,GUID,分布式系统并行生成时不可能会发生冲突 POST ...

  7. android wear开发之:建立可穿戴设备的应用 - Building Apps for Wearables

    注:本文内容来自:https://developer.android.com/training/building-wearables.html 翻译水平有限,如有疏漏,欢迎批评指教. 译:山人 建立可 ...

  8. Python-psutil模块

    psutil 1.简单介绍 psutil是一个跨平台库(http://code.google.com/p/psutil/),能够轻松实现获取系统运行的进程和系统利用率(包括CPU.内存.磁盘.网络等) ...

  9. C# 中英文符号互转

    /// 转全角的函数(SBC case) ///       ///任意字符串 /// 全角字符串 ///       ///全角空格为12288,半角空格为32       ///其他字符半角(33 ...

  10. Docker Swarm 中最重要的概念- 每天5分钟玩转 Docker 容器技术(94)

    从主机的层面来看,Docker Swarm 管理的是 Docker Host 集群.所以先来讨论一个重要的概念 - 集群化(Clustering). 服务器集群由一组网络上相互连接的服务器组成,它们一 ...