2014-02-09 197 views
1

每當我在調試模式下編譯我的程序它工作完全正常,但是當我編譯它在發行模式下,我得到了以下錯誤:版本編譯問題的Qt C++

moc_mainwindow.cpp:-1: error: undefined reference to `MainWindow::lowercase(QString)' 
moc_mainwindow.cpp:-1: error: undefined reference to `MainWindow::on_label_linkActivated(QString const&)' 
moc_mainwindow.cpp:-1: error: undefined reference to `MainWindow::on_ReadButton_clicked()' 
:-1: error: release/moc_mainwindow.o: bad reloc address 0x4 in section `.data' 
collect2.exe:-1: error: error: ld returned 1 exit status 

未定義的錯誤的都指向功能我在我的程序中刪除了。我也「Ctrl-F」在moc_mainwindow.cpp中編輯了所有它們,我找不到任何函數。另外通常當我雙擊錯誤時,我通常會得到一個顯示代碼中錯誤的參考,但它只是說「文件未找到:moc_mainwindow.cpp」

+0

你正在執行一個乾淨的構建? –

+0

乾淨的構建?對不起,我很新QT – user3183586

+0

如果您在Windows和QtCreator上使用Qt,請刪除'build- *'目錄並再次按下'CTRL + B'。這將迫使QtCreator再次生成所有makefile並編譯所有對象,因爲它們不再存在。 –

回答

4

我假設您使用的是Qt Creator?如果是這樣,要執行清理,您可以從構建菜單中選擇「重建全部」。您也可以選擇「清除」,然後右鍵單擊您的項目,然後選擇「運行qmake的」給力使文件的再生:

enter image description here

刪除編譯目錄也將工作,只要您使用「陰影構建」功能,以確保您的源和內部版本是不同的(這應該是默認的)

enter image description here

如果你有一個影子的建立,簡單地複製從項目生成目錄>構建&單擊運行>常規窗格,然後刪除i在終端中使用你的命令行。