c++开发常见问题汇总

在使用visual studio开发c++的工程时,经常会遇到各种各样奇奇怪怪的报错,有些可能要花很长时间才能解决甚至解决不了而完全放弃一个方案。所以想记录一下解决过的复杂问题。先写今天遇到的,以后再不断更新。
1、无法解析的外部符号。
如果引用了opencv,ffmpeg等库,一定要检查是否在工程属性的链接器常规和输入一栏加入了lib文件目录。
还有c++工程如果要引用c源文件可以直接把.c后缀名改为.cpp。如果引用ffmpeg等纯c语言写的lib库,要用extern “C”{ }把#include语句包裹住。否则就会报错无法解析外部符号。
2、xxx已经被否决
很多库都是经常更新的,在更新过程中api经常会变化,如果你在github等地方找到了一个用库的文件,你装的库由比他的新,那么就会遇到xxx已经被否决之类的错误。这时候直接去工程属性,c,c++常规里面把SDL检查改为否即可。如果不行只能去下载旧版本的库。因为我们做工程要的是最快速度解决问题,找旧版本的api在新版本的替代方法速度太慢。
3、无法从“void *”转换为“TRANSFORM ”。这个情况容易发生在.c文件改名为.cpp文件以后。因为c语言允许void到其他类型指针的隐式转换,但是c++不允许。改为显式转换就行了。
4、错误定位到了opencv等库内部。按说标准库是不可能有编译错误的,这种情况很可能是你自定义的变量函数或引用的其他库与报错的库冲突了,最好把自定义变量名称改掉。或者把冲突库全部用命名空间包起来。
5、错误 C1853 “x64\Release\xxx.pch”预编译头文件来自编译器的早期版本,或者预编译头为 C++ 而在 C 中使用它(或相反)。错误原因:c++的工程必须使用.cpp源文件,c语言的工程必须使用.c源文件。
6、.xxxxx的左边必须有类,结构,联合。但是你右键找到定义会发现其实这个变量是一个结构体或类。
首先确保别用错箭头与点,->是指针指向其成员的运算符.是结构体的成员运算符。最大的区别是->前面放的是指针,而.前面跟的是结构体变量。其次如果你用的vs软件,这个错误是错误列表的第一个错误,很可能错误的地方和这一行完全没有关系,这个是由其他错误引发的连锁错误,要去错误列表右侧的输出选项卡找到第一个错误进行修改即可。我这次就是不同库的宏定义重复引发的连锁错误。

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值