我所遇到的C++连接问题汇总
http://blog.sina.com.cn/s/blog_7caa399301017k1e.html
1:无法打开kernel32.lib
针对不同版本的VS,lib库所在的地方都不一样,所以首先搜索kernel32.lib这个文件所在的地方,例如我这个kernel32.lib 所在的地方是:C:\Program Files (x86)\Windows Kits\8.1\Lib\winv6.3\um\x86,
找到这个lib所在的地方之后,只要做如下操作就行了:
项目 属性 连接器 常规 附加库目录 添加kernel32.lib所在的那个文件夹的路径。
2:fatal error LNK1181: 无法打开输入文件"****.lib";
这种问题一般是有些进程正在打开这个要使用的lib,所以一般关掉对应的进程就好,找不到对应的进程的话就关机重启试试。
|
Well in this case it may be a VS bug. Try to find which process keeps the thelibrary.lib opened.
|
3:以下是我使用Openv所遇到的错误
4:连接问题实例
使用了不完整的类型 相应的库都包含了还出现这种错误一般是程序的某个地方少了一个分号。
VS 2010下 打开实例 出现这样的错误:
LINK : fatal error LNK1123: 转换到 COFF 期间失败: 文件无效或损坏
终极解决方案:
VS2010在经历一些更新后,建立Win32 Console Project时会出“error LNK1123” 错误,解决方案为将 项目|项目属性|配置属性|清单工具|输入和输出|嵌入清单 “是”改为“否”即可,但是没新建一个项目都要这样设置一次。
在建立VS2010 Win32 Project项目时,按照上面解决方案依然发生了“error LNK1123”错误,经过上网查资料,解决方案为:
第一步:与上相同。
第二步:将 项目|项目属性|配置属性|连接器|清单文件|嵌入清单 “是”改为“否”。
第三步:一般计算机经过上两步设置就能解决问题了,但是如果还有问题,那就按一下方法解决:
计算机是否为64bit操作系统,如是,继续2。
查
找是否有两个cvtres.exe。一个是C:\Program Files(x86)\Microsoft Visual Studio
10.0\vc\bin\cvtres.exe, 另一个是C:\Windows\Microsoft.NET\Framework\v
4.0.30319\cvtres.exe。右键属性|详细信息 查看两者版本号,删除/重命名较旧的版本,或者重新设置Path变量。
意外的是,治本的办法是第三步,删除旧版本的cvtres.exe后,就不需要每次都设置配置了。
在电脑里面搜索一下cvtres.exe,发现存在多个文件,使用最新的cvtres.exe替换老的文件即可,替换之前记得备份一下,如果不对,可以替换回来。
例如:我的电脑里面安装了vs2010,最近更新了系统,打了一些补丁,结果就出现这种错误了。在电脑里面搜索发现
C:\Program Files\Microsoft Visual Studio 10.0\VC\bin
C:\Windows\winsxs\x86_netfx-cvtres_for_vc_and_vb_b03f5f7f11d50a3a_6.1.7600.16385_none_ba476986f05abc65
C:\Windows\Microsoft.NET\Framework\v4.0.30319
这三个路径里面都有cvtres.exe文件,于是我尝试使用第二个路径里面的文件替换第一个路径的文件,问题解决。