[問題] 用GCC編譯兩個*.C檔??

看板LinuxDev作者 (Pablo Picasso G.)時間16年前 (2008/02/20 09:01), 編輯推噓7(705)
留言12則, 7人參與, 最新討論串1/2 (看更多)
請問我現在有兩個*.C檔和一個*.H檔,我要把它們編成一個執行檔,我的步驟如下 (Main.C, FunC.C, FunC.H): 1. gcc –c –g –Wall Main.C –o Main.O # 產生Main.O 2. gcc –c –g –Wall FunC.C –o FunC.O # 產生FunC.O 3. gcc –Wall Main.O FunC.O –o Main # 這一步要產生執行檔Main,但這一步 出現Error Message,如下: Main.O(.eh_frame+0x11): In function `main': /root/TEST/Main.C:6: undefined reference to `__gxx_personality_v0' collect2: ld returned 1 exit status 請問我的步驟那裡錯了??謝謝!! Annex: // Language: C, Compiler: gcc, OS: RH9 // FunC.C #include <stdio.h> #include "FunC.H" void Show(void) { printf("Hello!! World!! \n"); return; } // FunC.H #ifndef FUNC_H #define FUNC_H void Show(void); #endif // Main.C #include <stdio.h> #include "FunC.H" int main(int argc, char *argv[], char *envp[]) { Show(); return 0; } -- 來~剝好了,小心燙喔~ ◢◤ 喔喔~ ˋ◢██◣ ◢██◣◢ 哇~ ◢◤ ◣◢██◥█ ρ ██ █◥◥◥ ◤◤ █ ˊ你好體貼喔~ ◢◤ █ ◥◥◥██ ● ● ◢◤唉呀! ● <ζ◥◣ ◥██ ▼"█◤ ◢◤好燙~ˋ ◥█"/▊█◣ ◣██ ◢◤ ◢██ -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 220.229.128.76

02/20 09:02, , 1F
這個版早上居然沒人耶!!....@@
02/20 09:02, 1F

02/20 12:57, , 2F
我試了 沒問題耶=_=
02/20 12:57, 2F

02/20 13:11, , 3F
你照我的指令打沒問題??我用FC4也是有問題耶!!
02/20 13:11, 3F

02/20 13:11, , 4F
同樣的Error Message!!
02/20 13:11, 4F

02/20 13:33, , 5F
Ubuntu6.06 指令輸入一樣的 沒問題
02/20 13:33, 5F

02/20 14:01, , 6F
你的副檔名是小寫嗎 ?
02/20 14:01, 6F

02/20 17:03, , 7F
參考http://0rz.tw/bd3Fx 看這個對你有沒有幫助
02/20 17:03, 7F

02/20 17:31, , 8F
你要不要先試試將FunC.o編譯出來 再去編Main.o
02/20 17:31, 8F

02/20 20:53, , 9F
副檔名要用小寫,不然會當成C++, C++最後步驟就要 -lstdc++
02/20 20:53, 9F

02/20 21:34, , 10F
不要習慣大小寫不分...
02/20 21:34, 10F

02/20 21:52, , 11F
原來大寫會用C++去編喔~真神奇!
02/20 21:52, 11F

02/20 23:49, , 12F
我測是用小寫的檔名 XD
02/20 23:49, 12F
文章代碼(AID): #17ktlu_0 (LinuxDev)
文章代碼(AID): #17ktlu_0 (LinuxDev)