close

可能狀況一:

 

如果編譯一個 C/C++原始檔,沒有主函數要執行,[即沒有int WINAPI WinMain ()的時候]。

 

意思就是,或許你將一些某功能的函數編寫在另一個原始檔上,但在主檔上還沒呼叫到你寫的某些功能函數時,就會產生這個錯誤代碼。

 

例如:main.cpp 為主檔,在WinMain ()中呼叫了a(),b(),d(),e()等函數,也把a(),b(),寫在funab.cpp,d(),e()寫在funde.cpp內,但先將某功能的c()寫入另一個func.cpp原始檔中,這就形成了func.cpp沒有被主函數WinMain()呼叫到了,而且func.cpp本身也沒有WinMain(),錯誤就出現了。

 

 

 

可能狀況二:

 

編譯且執行一個檔案 也確實是可執行的,但...執行後關閉視窗,看似結束程式了,畫面也消除了,但其實卻是一直在執行當中。
你可以試試到檔案總管去刪除你編譯的.exe執行檔,如果刪除不掉就代表他掉入了某種狀況當中還在執行著,最常出現的就是在修改程式測試的過程中。

 

剛開始因為刪不掉我所編譯出來的.exe檔,我的笨方法就是重開機。後來...呼叫工作管理員,在處理程序內直接結束掉那隻不聽話的檔案,這樣再編譯所修改的原始檔就沒問題了。

 

 

 

可能狀況三:

 

這是在寫console版的時候出現的狀況


D:\2\1\collect2.exe    [Error] ld returned 1 exit status

 

#include<iostream>

int count();   // 宣告函數

 

但是在 int main(int argc, char** argv)

{

.......

.......

........

}

寫完成後

 

忘了寫之前在 int main(int argc, char** argv)前已宣告計算用的函數 int count( ) ;  所以編譯程式就[Error]了,

 


補寫好

int count( )

{

.....

......

}

就 ok!

 

 

可能狀況四:

當在寫視窗程式時....如果有引用位址來傳東西 並且又是用64位元來編譯程式碼 也會發生[Error] ld returned 1 exit status

 

畢竟這一套東西是 WIN321API ,除非你用的是微軟的C  或許微軟有使用某些套件包裝來避免這個狀況

如果你也一樣用Dev C++的話,就需要把編譯版本調為32位元了

 

 

延伸閱讀

 

[伊蒙 dev c++] 視窗程式學習筆記

 

[做中學 dev c++] dev c++

 

 

 

 

 

.

arrow
arrow
    創作者介紹
    創作者 伊蒙‧普羅客 的頭像
    伊蒙‧普羅客

    面向陽光,陰影就會在身後

    伊蒙‧普羅客 發表在 痞客邦 留言(0) 人氣()