2014-04-08 189 views
2

當我嘗試構建我的應用程序時,出現以下錯誤。任何想法? 我在Win8中使用Qt 5.2.1使用MinGW 4.8 32位錯誤「collect2.exe:ID返回1退出狀態」與Qt 5.2.1

16:14:47: Running steps for project test2... 
16:14:47: Configuration unchanged, skipping qmake step. 
16:14:47: Starting: "C:\Qt\Tools\mingw48_32\bin\mingw32-make.exe" 
C:/Qt/Tools/mingw48_32/bin/mingw32-make -f Makefile.Debug 
mingw32-make[1]: Entering directory 'C:/Users/ha/Desktop/build-test2-Desktop_Qt_5_2_1_MinGW_32bit-Debug' 
g++ -Wl,-subsystem,console -mthreads -o debug\test2.exe debug/main.o 
debug/main.o: file not recognized: File truncated 
collect2.exe: error: ld returned 1 exit status 
Makefile.Debug:77: recipe for target 'debug\test2.exe' failed 
mingw32-make[1]: *** [debug\test2.exe] Error 1 
mingw32-make[1]: Leaving directory 'C:/Users/ha/Desktop/build-test2-Desktop_Qt_5_2_1_MinGW_32bit-Debug' 
makefile:34: recipe for target 'debug' failed 
mingw32-make: *** [debug] Error 2 
16:14:48: The process "C:\Qt\Tools\mingw48_32\bin\mingw32-make.exe" exited with code 2. 
Error while building/deploying project test2 (kit: Desktop Qt 5.2.1 MinGW 32bit) 
When executing step 'Make' 
16:14:48: Elapsed time: 00:00. 

回答

4

這條線:

debug/main.o: file not recognized: File truncated 

告訴你main.o未正確創建的文件。從菜單中選擇「重建」,或者刪除該文件並再次「建立」。

這通常發生在您輸出目標文件時中斷編譯器。

+0

這也意味着最有可能的編譯器不會以原子方式輸出目標文件:( –

+0

@Kuba你如何想象原子寫入文件會起作用?在通常的意義上這是不可能的。 – rubenvb

+0

'QSaveFile'這樣做,並且沒有被破壞的工具也可以這樣做,你可以寫一個臨時文件,關閉它,然後在輸出文件中重命名它,只要計算機和操作系統本身保持運行,你就可以殺死在任何時候你都不會有一個部分編寫的輸出文件,部分的臨時文件是沒有意義的,如果重命名文件是一個單一的操作,那麼你也不會在沒有完成任何東西的情況下銷燬現有的文件取代它,它非常簡單。 –

相關問題