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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

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

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

最佳答案

查看完整内容

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

15 个回复

倒序浏览
楼主最好把你的程序发上来,我猜你是不是代码里,把play写成paly了,导致失败。
回复 使用道具 举报
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





回复 使用道具 举报
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$
出来的是以上的说明、、、找不到什么什么、、、
回复 使用道具 举报
这不可能,这不正常,我用的就是Xcode.6.1都能生成,怎么可能输不出来,看你下面的报错说法是链接报错,说出程序有问题,建议从新查看程序,将.o文件删除直接cc 文件名.c,编译链接一起来,
回复 使用道具 举报
看不懂啊!弱爆了
回复 使用道具 举报
howhaw 初级黑马 2015-2-27 09:37:15
7#
paly这个变量或函数在main函数中没有定义,导致链接器无法识别,lz最好贴出源码
回复 使用道具 举报
1.编译  cc-c  指令 将代码转为 0,1。
2.链接  cc     指令 链接系统库 转为可执行文件。
3.运行    运行 exe。

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

之后使用Xcode写程序就清楚了。亲不要太纠结,加油,大家一起努力。
回复 使用道具 举报
sydie 中级黑马 2015-3-11 13:26:24
9#
总共四步的 编写代码 编译(cc-c 文件名.c)  链接(cc 文件名.o)  运行 ./a/out
回复 使用道具 举报
cc 文件.o -framework Foundation

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

里面函数写错了,大哥
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马