[問題] 關於cmdMgr

看板EE_DSnP作者 (千)時間17年前 (2006/11/21 23:46), 編輯推噓7(701)
留言8則, 3人參與, 最新討論串1/1
只是想知道 在main()裡面有這一行 if (!initCommonCmd() || !initCalcCmd()) return 1; 而在 initCommonCmd() 和 initCalcCmd() 中都會用到 cmdMgr->regCmd(.....) 可是 cmdMgr 的 declaration 是放在 cmdParser.cpp 裡面 但我從 main.cpp 的 header files 裡面往上trace都找不到 cmdParser.cpp 也就是說 如果電腦真的是從main開始一行一行執行的話 應該不會call到 CmdParser* cmdMgr = new CmdParser("mcalc> "); 這一行 那為什麼可以直接拿cmdMgr來用呢? -- 問題很冗長orz -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 219.70.220.238

11/22 00:08, , 1F
global variable initialization比main還要早執行
11/22 00:08, 1F

11/22 00:12, , 2F
謝謝 那main要怎麼判斷誰是它的global variable呢?
11/22 00:12, 2F

11/22 00:14, , 3F
因為cmdPaser.cpp並沒有被include到main.cpp裡面
11/22 00:14, 3F

11/22 00:22, , 4F
linker
11/22 00:22, 4F

11/22 00:31, , 5F
That's why in cmdParser.h --> extern CmdParser* cmdMgr;
11/22 00:31, 5F

11/22 00:47, , 6F
那是在哪設定linker要去找到CmdParse.cpp呢?Makefile?
11/22 00:47, 6F

11/22 09:00, , 7F
Makefile有說要去找cmdParser.o
11/22 09:00, 7F

11/22 14:01, , 8F
謝謝你們!
11/22 14:01, 8F
文章代碼(AID): #15Ony-yv (EE_DSnP)