vs的各种常见编译,链接错误

本文列举并解析了在使用Visual Studio进行项目开发过程中常见的几种编译错误,包括链接错误、类型转换错误等,并提供了相应的解决方案。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


在上手vs写代码,搞工程的阶段,总会遇到各种各样的编译错误,链接错误,而每个错误都有一个编码,做好总结,以后可以帮助我们更好更快地定位问题,解决问题

1. error LNK2019: 无法解析的外部符号 __FUN2@8,该符号在函数 "public: static void __cdecl xxx::FUN1(struct HWND__ *,struct HRGN__ *,bool,bool)" (?DrawAero@OMDraw@@SAXPAUHWND__@@PAUHRGN__@@_N2@Z) 中被引用

这是一个链接错误,也就是在FUN1函数中调用了FUN2函数,编译器找了FUN1函数的声明,但是链接器没有找到FUN2函数的定义,所以就是一个无法解析的外部符号。__FUN2@8这样的一个形式是VS特有的C++的函数名称重整。


2. error LNK2011: 映像可能不能运行 D:xxxx.lib(yyyy.obj)

3.error LNK1104: 无法打开文件“C:\Users\admin\Desktop\xxxx\Build\Lib\Debug\xxx.lib”

链接错误: 导入该lib文件发生错误,很有可能是在该文件路径下不存在xxx.lib文件,小概率情况是xxx.lib损坏了(本人被坑过)

4. error C2440: “初始化”: 无法从“const char [37]”转换为“int”

数据类型不同,不能赋值,如字面意思


5.error C2664: “std::string FUNC(const unsigned char *,int)”: 无法将参数 1 从“const char *”转换为“const unsigned char *”

类型不一样,又无法隐式类型转换,只能自己通过显式的强制类型转换了。

error C2664: “BOOL MakeSureDirectoryPathExists(LPCTSTR)”: 无法将参数 1 从“std::string”转换为“LPCTSTR”

LPCTSTR其实就是const char *(字符数组),string重载了赋值和拷贝构造函数。但是无法让string直接转成char数组。


6. error C1189: #error :  Building MFC application with /MD[d] (CRT dll version) requires MFC shared dll version. 

Please #define _AFXDLL or do not use /MD[d] d:\software\vs_2013\vc\atlmfc\include\afx.h 24 1 APITest

在VS新建的win32项目中要想使用MFC的东西,就会报改错。解决方法不记得了。


7.error C2679: 二进制“<<”: 没有找到接受“std::string”类型的右操作数的运算符(或没有可接受的转换)


vs小技巧:

vs自动对齐:  1, ctrl+a  2, ctrl+k  3, ctrl+f

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值