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++。(個人覺得這條是最重要的)