可能狀況一:
如果編譯一個 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位元了
延伸閱讀
.
留言列表