作者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