写在前面:本博文是在我现有知识状态下写的, 我现在是小白, 有错误欢迎指正。 以后假如接触到更合理的见解, 我一定会修正这篇博文的。
本文原是在我本地笔记中待着的, 写于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. oracle数据库显示所有用户方法

    sql>show user查看自己的是哪个用户sql>select * from all_users; 查询所有用户sql>select * from user_users;查询当前 ...

  2. C 程序实现密码隐秘输入 linux系统可执行

    读写用户输入,屏幕不回显 char *getpass( const char *prompt); getpass用于从键盘读取用户输入,但屏幕不回显. 参数prompt为屏幕提示字符. 函数返回值为用 ...

  3. 微信公众平台快速开发框架 For Core 2.0 beta –JCSoft.WX.Core 5.2.0 beta发布

    写在前面 最近比较忙,都没有好好维护博客,今天拿个半成品来交代吧. 记不清上次关于微信公众号快速开发框架(简称JCWX)的更新是什么时候了,自从更新到支持.Net Framework 4.0以后基本上 ...

  4. linux数据库备份脚本

    数据库备份1.创建个备份存储目录mkdir /root/backup/2.以下内容写到dbbackup.sh(注意,使用VIM 或者VI命令新建文件,不要在WINDOWS下新建,否则可能提示 No s ...

  5. Linux系列教程(十八)——Linux文件系统管理之文件系统常用命令

    通过前面两篇博客,我们介绍了Linux系统的权限管理.Linux权限管理之ACL权限 介绍了通过设定 ACL 权限,我们为某个用户指定某个文件的特定权限,这在Linux只能对于一个文件只能有所有者权限 ...

  6. 开篇-我眼中的FPGA

    既然是开篇,那就来闲话叨一叨FPGA吧. 掰掰指头,结识FPGA估计有5年多.作为嵌入式工程师,每天的日常充斥着ARM.DSP.操作系统.通讯.总线等耳熟能详的词汇,徜徉其中不能自拔,而这其中,自觉最 ...

  7. [转载] redis 的两种持久化方式及原理

    转载自http://www.m690.com/archives/371 Redis是一种高级key-value数据库.它跟memcached类似,不过数据可以持久化,而且支持的数据类型很丰富.有字符串 ...

  8. LayoutInflater 三种获得方式

    LayoutInflater 作用是从外部加载一个xml布局文件. 获得 LayoutInflater 实例的三种方式: 1.LayoutInflater inflater = getLayoutIn ...

  9. HTML基础上

    知识点一:HTML Hyper Text Markup Language 超文本标记语言. HTML标准结构: < ! doctype html> 声明文档类型 <html> ...

  10. JSP7(Cookie与javamail)

    一.cookie是什么意思? 英文直接翻译过来的意思呢就是小甜品 Cookie英文意指饼干,不过在电脑术语中它可不像饼干那么简单.简单的说,Cookie就是服务器暂存放在你计算机上的一笔资料,好让服务 ...