關於error LNK2019 無法解析的外部符號

在使用VS2008+Qt寫一個程序時,運行報錯:errorLINK2019 無法解析的外部符號。
圖1 編譯器報錯信息
這是一個鏈接錯誤,意思就是編譯器不認識這個符號(錯誤信息中顯示的函數名)。爲什麼不認識呢?兩種可能,一種是你只是給編譯器提供了函數名,但是沒有實現這個函數,編譯器自然就不會認識了,只能說見過,但是不認識;第二種情況就是你壓根就沒有這個包含函數實現的文件。實際上兩種情況本質是一個,那就是沒找到函數的實現。具體情況如下:
1.可能是在類的頭文件中聲明的某個函數,並未在類中實現,即在h文件中聲明瞭,沒在cpp文件裏寫該函數的實現代碼。這種情況根據編譯器的報錯信息中顯示的函數名,對該函數實現就可以了。
2.包含錯誤信息中顯示的函數的文件沒有在工程中加載,這個問題有時候比較難發現,如果第一種情況可以排除,那麼就要考慮這種情況了。
根據錯誤中顯示的函數名,找到該函數實現的文件,然後加載進來.
本例就是因爲QGUI生產的文件moc_qshowlabel.cpp被我不小心刪掉了,所以編譯器報了錯,害我找了半天。將該文件加載進來後,問題解決!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章