A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

© 上古丶 中级黑马   /  2015-2-2 18:12  /  3505 人查看  /  15 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

5黑马币
终端输入指令cc -c可以生成.o文件
但是再输入cc指令出不来。out文件
求告知、现在用的最新系统、一直按Xcode4的教程来学习的!求老手、顺便可以加下QQ76145066、、、希望有什么问题可以咨询、、入学了请客吃饭啊啊啊啊啊啊啊啊、本人0基础的!

最佳答案

查看完整内容

楼主最好把你的程序发上来,我猜你是不是代码里,把play写成paly了,导致失败。

15 个回复

正序浏览

里面函数写错了,大哥
回复 使用道具 举报
文件名写的不对
回复 使用道具 举报
咳咳、现在知道了、源代码的问题
回复 使用道具 举报
对啊。这个说明你链接的时候有错误,可能是你只声明了函数,却没有定义造成的。建议贴出来代码
回复 使用道具 举报
链接 不成功 说明你的源代码有点错误 如果把源代码发出来就好了
回复 使用道具 举报
哪有那么麻烦,你只需要 cc 文件名.c 。就可以直接编译完成了。然后终端打上./a.out。这样就程序的结果就出来了。不懂请追问,楼主采纳啊
回复 使用道具 举报
cc 文件.o -framework Foundation

后边那些加了么
回复 使用道具 举报
sydie 中级黑马 2015-3-11 13:26:24
8#
总共四步的 编写代码 编译(cc-c 文件名.c)  链接(cc 文件名.o)  运行 ./a/out
回复 使用道具 举报
1.编译  cc-c  指令 将代码转为 0,1。
2.链接  cc     指令 链接系统库 转为可执行文件。
3.运行    运行 exe。

报错 链接失败,找不到  paly 。很明显 paly没定义。 视频中定义的函数是 int play()。估计亲在main函数中把play();错写成了paly();
其实这节只是告诉你 程序的从编写到运行的过程。了解就行了,你敲的函数有问题,肯定是无法通过的。

之后使用Xcode写程序就清楚了。亲不要太纠结,加油,大家一起努力。
回复 使用道具 举报
paly这个变量或函数在main函数中没有定义,导致链接器无法识别,lz最好贴出源码
回复 使用道具 举报
看不懂啊!弱爆了
回复 使用道具 举报
这不可能,这不正常,我用的就是Xcode.6.1都能生成,怎么可能输不出来,看你下面的报错说法是链接报错,说出程序有问题,建议从新查看程序,将.o文件删除直接cc 文件名.c,编译链接一起来,
回复 使用道具 举报
sixleaves 发表于 2015-2-4 19:34
cc XXXX.o后出不来a.out文件吗?默认链接出来的就叫做a.out。一般是不会有问题的,如果没出来要么是你没链 ...

macdeMacBook-Air:Desktop mac$ cc 01-第一个C语言.o
Undefined symbols for architecture x86_64:
  "_paly", referenced from:
      _main in 01-第一个C语言.o
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
macdeMacBook-Air:Desktop mac$
出来的是以上的说明、、、找不到什么什么、、、
回复 使用道具 举报
cc XXXX.o后出不来a.out文件吗?默认链接出来的就叫做a.out。一般是不会有问题的,如果没出来要么是你没链接成功,但是会报错,要么你根本就没链接

1.直接编译链接一起做cc XXXX.m -o yyy
这里的-o的名字是.o的名字也是编译链接后原来哪个(a.out)名字,相当于把a.out我们把它重命名了,然后你再
ls看下有没有这个文件。
yyy是你自己取名的,XXXX是你要编译的那个文件的名字、


下面是我在我终端上执行的,你模仿试下:(看到ls查看后那个test了么,要执行的话,输入  ./test  )
sixleavesdeMac-Pro:CH1 sixleaves$ cc 1-1.m -o test
sixleavesdeMac-Pro:CH1 sixleaves$ ls
1-1.m        1-2.m        four.c        four.o        one.o        three.m        two.h        two.o
1-1.o        a.out        four.h        one.m        test        three.o        two.m
sixleavesdeMac-Pro:CH1 sixleaves$ ./test





回复 使用道具 举报
楼主最好把你的程序发上来,我猜你是不是代码里,把play写成paly了,导致失败。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马