看板 LinuxDev 關於我們 聯絡資訊
小弟是使用OpenSUSE的新手,目前在學習使用Command Line Compile C, 使用的當然是GCC Compiler, 我碰到的問題是這樣的: 我要把Test.c precompile 成 Test.o,然後Test.c 裡面有include一個A.h, A.h和Test.c放在同一個目錄裡面, 我在Command Line當中輸入(已經移到該目錄,假設為~/Level0/Level1/): cc -I. Test.c -o Test.o <--失敗 cc -I./ Test.c -o Test.o <--還是失敗 不過,當我移到上一層目錄(~/Level0/),然後輸入: cc -I./Level1/ ./Level1/Test.c -o ./Level1/Test.o <--成功產生Test.o 失敗的錯誤訊息為: /usr/lib/gcc/i586-suse-linux/4.4/../../../crt1.o: In function `_start': /usr/src/packages/BUILD/glibc-2.10.1/csu/../sysdeps/i386/elf/start.S:115: undefined reference to `main' collect2: ld returned 1 exit status 請問為什麼會這樣子呢? 還是說失敗的寫法其實是有問題的? -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 61.221.67.235
askacis:要加-c 才會只編譯不連結,不然會linking成執行檔,又因為 03/21 18:41
askacis:你沒有main 的函式所以才會顯示linking error了 03/21 18:41
shiengchyi:感謝解答 ^___^ 03/22 09:30
yabuki:可能未定義主參數(Main) 03/28 23:10