作者shiengchyi (上班族之朝九晚六?!)
看板LinuxDev
標題[問題] GCC Command Line
時間Mon Mar 21 17:58:18 2011
小弟是使用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
1F:推 askacis:要加-c 才會只編譯不連結,不然會linking成執行檔,又因為 03/21 18:41
2F:→ askacis:你沒有main 的函式所以才會顯示linking error了 03/21 18:41
3F:→ shiengchyi:感謝解答 ^___^ 03/22 09:30
4F:→ yabuki:可能未定義主參數(Main) 03/28 23:10