2013-04-27 58 views
1

我想運行和編譯一些Qt代碼,所以我可以學習它,我去的網站下面,我看到他們提供了一些Qt例子新Qt中得到了鏈接和Makefile錯誤

Sample Qt Code

我使用最新版本,那麼我複製的代碼,但我得到這些錯誤:

mainwindow.obj:-1: error: LNK2005: main already defined in main.obj

debug\uwm.exe:-1: error: LNK1169: one or more multiply defined symbols found

於是,我問的問題在「qt forum」,他們建議刪除「主窗口.H」和‘從我的項目目錄mainwindow.cpp’

如果我這樣做,第一個錯誤都沒有了,但我建立了項目後,我得到新的:

11:58:21: Running steps for project uwm... 11:58:21: Configuration unchanged, skipping qmake step. 11:58:21: Starting: "C:\Qt\Qt5.0.2\Tools\QtCreator\bin\jom.exe"
C:\Qt\Qt5.0.2\Tools\QtCreator\bin\jom.exe -f Makefile.Debug Error: dependent '..\uwm\mainwindow.cpp' does not exist. jom: D:\qt\build-uwm-Desktop_Qt_5_0_2_MSVC2012_64bit-Debug\Makefile [debug] Error 2 11:58:21: The process "C:\Qt\Qt5.0.2\Tools\QtCreator\bin\jom.exe" exited with code 2. Error while building/deploying project uwm (kit: Desktop Qt 5.0.2 MSVC2012 64bit) When executing step 'Make' 11:58:21: Elapsed time: 00:00.

+0

我無法提交我的第二個錯誤的屏幕截圖http://s21.postimg.org/6z7t2mnx3/Scrshot11.png – amir 2013-04-27 17:52:20

+0

由於某些原因,您更改項目'Makefile'和'Makefile.Debug'後沒有更新。嘗試刪除整個'D:\ qt \ build-uwm-Desktop_Qt_5_0_2_MSVC2012_64bit-Debug'並重試。 – Paul 2013-04-27 18:00:24

+0

@保羅謝謝你解決!完美...你是對的Makefile和Makefile.Debug沒有更新。 – amir 2013-04-27 18:01:15

回答

1

當您更改你的代碼在製作或嘗試構建在另一臺機器上編寫和編譯的代碼之後,避免出現此類問題的最佳方法以及爲您的工作環境安裝.pro文件的方法是運行make clean,然後再次運行qmake -project,然後再構建它。

$ make clean 
$ qmake -project 
$ qmake [your .pro file name here].pro 
$ make 

,但你要注意,QMAKE不會插入你需要生成你的.pro文件中適當的Makefile中的所有參數。例如,如果您已使用外部庫(如boost),則需要在.pro文件中使用LIBS +=手動添加它們。最好使用「Qt Creator」,所以每次你想構建代碼時都不必這樣做,並且需要解釋正確的.pro文件和配置。也要非常注意你的編譯錯誤,並嘗試逐個解決這些問題,直到你成功地構建你的代碼。