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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM