c++各种错误归纳

1.error: invalid use of incomplete type 'QScrollBar'

解决方法.h 文件添加:#include<QScrollBar>

2.error: cannot call member function without object

解决方法:找到.h文件,在方法前加上static修饰

3.g++编译报错原因分析expected type-specifier before

原因:因为没有引入相应的头文件,加入相应的.h可以解决

4.error: conversion from ‘std::__cxx11::list<rcsc::PlayerObject>::const_iterator
{aka std::_List_const_iterator<rcsc::PlayerObject>}’
to non-scalar type ‘std::vector<rcsc::PlayerObject*>::const_iterator {aka __gnu_cxx::__normal_iterator<rcsc::PlayerObject* const*, std::vector<rcsc::PlayerObject*> >}’ requested

原因:迭代类型返回的对象不一致,如:t = wm.teammates.begin()应该换成 t = wm.teammatesFromBall().begin()

5.warning: ‘' [-Wreorder]

产生这种问题是类成员初始化顺序不对,调整顺序即可;

6.error:[Error] '' was not declared in this scope

原因:因为没有引入相应的头文件,加入相应的.h可以解决
或者函数定义没有放在使用此函数的前面,调整位置或者在使用此函数前面加上申明即可。

7.error: make: *** No rule to make target `../1.c', needed by `1.o'.

办法找到1.c文件,1.o文件需要1.c文件来生成,应该是1.c文件的配置路径写错了,修改一下
路径就可以了。


8.error: reference to ‘FieldAnalyzer’ is ambiguous

加上命名空间前缀就好了


9.error:invalid new-expression of abstract class type

原因:对抽象类进行了new操作,或派生类中未完全实现基类中定义的纯虚函数。

解决方法:一般编译器会检查并提示基类中的哪些纯虚函数未实现,按提示将纯虚函数实现即可。


10.error  undefined reference to "class::方法"

文件中存在某方法的声明,但没有它对应的实现

11.使用GCC编译后出现下列可怕的问题:
hello.o: In function `main':
hello.cpp:(.text+0x41): undefined reference to `std::cin'
hello.cpp:(.text+0xd1): undefined reference to `std::cout'
......

解决方法:
(1)gcc和g++都是GNU(组织)的一个编译器。

(2)后缀名为.c的程序和.cpp的程序g++都会当成是c++的源程序来处理。而gcc不然,gcc会把.c的程序处理成c程序。

(3)对于.cpp的程序,编译可以用gcc/g++,而链接可以用g++或者gcc -lstdc++。(个人觉得这条是最重要的)

 

posted @ 2018-04-21 23:13  醉风晨  阅读(4155)  评论(0编辑  收藏  举报