锐英源软件
第一信赖

精通

英语

开源

擅长

开发

培训

胸怀四海 

第一信赖

当前位置:锐英源 / 开源技术 / 大型开源项目代码平台升级从VC6移植到VS2010
服务方向
人工智能数据处理
人工智能培训
kaldi数据准备
小语种语音识别
语音识别标注
语音识别系统
语音识别转文字
kaldi开发技术服务
软件开发
运动控制卡上位机
机械加工软件
软件开发培训
Java 安卓移动开发
VC++
C#软件
汇编和破解
驱动开发
联系方式
固话:0371-63888850
手机:138-0381-0136
Q Q:396806883
微信:ryysoft

锐英源精品开源心得,转载请注明出处:锐英源,www.wisestudy.cn,孙老师作品,联系电话13803810136。

背景


2014年11年30日,郑州周末夜校班学员李同学在工作里遇到一个移植问题,需要把VC++6下项目移植到VS2010或VS2013,中间遇到层出不穷的问题,他的上级领导也没有解决,只是想了个折衷的方法,先用2013升级下,再用2012打开,很麻烦,所以向锐英源求助,锐英源用丰富的工作经验和英语经验解决了问题,并解释了问题的原因,李同学深感佩服。

1、VS2010打开VC6dsw文件

VC6的工作区文件是dsw文件,VS2010打开这个文件后,会自动升级,升级时有些提示,选择是通过。初次编译,就有很多链接错误,如下:
error LNK2019: 无法解析的外部符号
error LNK2001: 无法解析的外部符号

2、简单的“无法解析的外部符号”问题

编译器先生成符号,有符号才能链接。在链接时找不到符号,链接就通过不了。符号出处要么在代码里,要么是库里,简单的问题就是符号对应的代码没加到项目里,把对应的代码加到项目里就可以解决了。用此方法把1步骤出现的简单问题解决了。但是又遇到类似如下问题: 1>libcmtd.lib(crt0dat.obj) : error LNK2005: _exit 已经在 msvcrtd.lib(MSVCR100D.dll) 中定义
1>libcpmtd.lib(locale0.obj) : error LNK2005: "private: static class std::locale::_Locimp * __cdecl std::locale::_Init(void)" (?_Init@locale@std@@CAPAV_Locimp@12@XZ) 已经在 msvcprtd.lib(MSVCP100D.dll) 中定义

3、已经定义问题

对于已经定义问题,就要忽略特定的库lib文件,忽略库的界面如下:

VS忽略特定库
友情链接
版权所有 Copyright(c)2004-2021 锐英源软件
公司注册号:410105000449586 豫ICP备08007559号 最佳分辨率 1024*768
地址:郑州大学北校区院(文化路97号院)内