[問題] unresolved external symbol _main(已解決)

看板C_and_CPP (C/C++)作者 (熊貓)時間13年前 (2012/10/27 17:55), 編輯推噓0(009)
留言9則, 2人參與, 最新討論串1/1
開發平台(Platform): Winxp sp3 用VC6sp6 問題(Question): 小弟在練習使用自己Build的library,就是.lib檔 用的code是MSDN所提供的(雖然它上面最低版本是2005的了),再稍做修改 build整個project 出現以下error LIBCD.lib(crt0.obj) : error LNK2001: unresolved external symbol _main 在網路上找解決辦法是說把project->setting->link subsystem:windows改成subsystem:console 但改了後變成 LIBCD.lib(wincrt0.obj) : error LNK2001: unresolved external symbol _WinMain@16 查到的資料說會造成error的原因是因為上面的更改 小弟我整個不知道怎麼辦 程式碼(Code):(請善用置底文網頁, 記得排版) // MyMathFunction.cpp // compile with: /c /EHsc // post-build command: lib MathFuncsLib.obj #include "MyMathFunction.h" #include <stdexcept> using namespace std; namespace MathFuncs { double MyMathFuncs::Add(double a, double b) { return a + b; } double MyMathFuncs::Subtract(double a, double b) { return a - b; } double MyMathFuncs::Multiply(double a, double b) { return a * b; } double MyMathFuncs::Divide(double a, double b) { if (b == 0) { throw new invalid_argument("b cannot be zero!"); } return a / b; } } // MyMathFunction.h namespace MathFuncs { class MyMathFuncs { public: // Returns a + b static double Add(double a, double b); // Returns a - b static double Subtract(double a, double b); // Returns a * b static double Multiply(double a, double b); // Returns a / b // Throws DivideByZeroException if b is 0 static double Divide(double a, double b); }; } 以上build成lib檔 // Mainexe.cpp // compile with: /c /EHsc // post-build command: lib MathFuncsLib.obj #include "MyMathFunction.h" #include <stdexcept> #pragma comment(lib,"ws2_32.lib") using namespace std; namespace MathFuncs { double MyMathFuncs::Add(double a, double b) { return a + b; } double MyMathFuncs::Subtract(double a, double b) { return a - b; } double MyMathFuncs::Multiply(double a, double b) { return a * b; } double MyMathFuncs::Divide(double a, double b) { if (b == 0) { throw new invalid_argument("b cannot be zero!"); } return a / b; } } int main() { return 0; } subsystem:windows http://ppt.cc/fjFQ subsystem:console http://ppt.cc/J08k P.s 當初新增專案時,我是選擇WINDOWS APPLICATION 然後EMPTY PROJECT project -> setting -> c/c++ processor defition 我也有試著改過_WINDOWS _CONSOLE 試著跟上面排列組合還是沒有解決。 其實我沒有很懂這方面的原由,讓各位見笑了,但很誠心想解決問題 另外我是第一次PO文,若有格式不合,請麻煩大大們指正,謝謝 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.116.101.125

10/27 18:05, , 1F
entry point 沒實做
10/27 18:05, 1F

10/27 18:07, , 2F
應用程式會有一個進入點,程式會從這個點開始執行。
10/27 18:07, 2F
※ 編輯: roiafafa 來自: 140.116.101.125 (10/27 21:28)

10/27 21:29, , 3F
不好意思太心急了,忘記連main都沒有,補上後一樣QQ
10/27 21:29, 3F

10/28 02:02, , 4F
linker 參數 : /SUBSYSTEM:CONSOLE
10/28 02:02, 4F

10/28 02:06, , 5F
有試過改成 int main(int argc, char * argv[]) 嗎?
10/28 02:06, 5F

10/28 02:15, , 6F
有沒有試著 clean 過再 build ?
10/28 02:15, 6F

10/28 08:58, , 7F
改成/SUBSYSTEM:CONSOLE以及build前先clean就過了
10/28 08:58, 7F

10/28 08:59, , 8F
感謝大大的友情提醒,之前完全沒有做clean的動作或習慣
10/28 08:59, 8F

10/28 09:00, , 9F
這次學到教訓了
10/28 09:00, 9F
文章代碼(AID): #1GYw-DEi (C_and_CPP)
文章代碼(AID): #1GYw-DEi (C_and_CPP)