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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© claud0623 中级黑马   /  2014-9-6 12:54  /  1810 人查看  /  10 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 claud0623 于 2014-9-6 17:48 编辑

看了几天OC视频,最近才开始敲代码,遇到这个程序,出现这样的错误,望各位指明如何修改:
  1. #import <Foundation/Foundation.h>
  2. @interface Person : NSObject
  3. {
  4.     @public
  5.     int age;
  6.     double height = 1.55;
  7. }
  8.     - (void)study;
  9. @end
  10. @implementation Person
  11. - (void)study
  12. {
  13.     NSLog(@"年龄为%d的人在学习", age);
  14. }
  15. @end

  16. int main()
  17. {
  18.     Person *p = [Person new];
  19.     p->age = 10;
  20.     p->height = 1.78;
  21.     [p study];
  22.     return 0;
  23. }
复制代码
用cc 文件名.c -framework Foundation编译时错误如下:
-framework: No such file or directory
Foundation: No such file or directory
m:6: error: expected ‘:’, ‘,’, ‘;’, ‘}’ or ‘__attribute__’ before ‘=’ token
m: In function ‘main’:
m:21: error: ‘struct Person’ has no member named ‘height’

10 个回复

倒序浏览
学过C,但是忘记了不少,但是从编译错误提示,应该是对象没有赋值,或者是赋值类型不合适
回复 使用道具 举报
错在第6行,类的属性不能在定义时初始化,要通过对象来赋值
改为:double height;
回复 使用道具 举报
reinvent 发表于 2014-9-6 13:59
错在第6行,类的属性不能在定义时初始化,要通过对象来赋值
改为:double height; ...

谢谢,MJ老师在视频中说过声明中不允许赋值的,这我都忘了。那你知道为什么编译时会出现
-framework: No such file or directory
Foundation: No such file or directory
这种错误呢?
回复 使用道具 举报
第6句,成员变量不能定义的时候赋值
回复 使用道具 举报
★彬★卍囧神 发表于 2014-9-6 15:48
第6句,成员变量不能定义的时候赋值

是的,就是这个错误。那么,版主知道为什么编译时会出现
-framework: No such file or directory
Foundation: No such file or directory
这种错误呢?为此,a.out程序都没能生成。
我试了一下其他程序,都可以成功用-framework Foundation编译的,唯独这个不行。
回复 使用道具 举报
claud0623 发表于 2014-9-6 15:54
是的,就是这个错误。那么,版主知道为什么编译时会出现
-framework: No such file or directory
Fou ...

你看看你xcode里的founddation在?
回复 使用道具 举报
怎么找啊?我找了老半天没找到,记得老师以前示范过,不知是哪个视频了。
不过,我用-framework foundation编译其他有foundation框架的程序可以通过。
回复 使用道具 举报
★彬★卍囧神 发表于 2014-9-6 15:57
你看看你xcode里的founddation在?

一时手忙,直接在帖子回复了。
怎么找啊?我找了老半天没找到,记得老师以前示范过,不知是哪个视频了。
不过,我用-framework foundation编译其他有foundation框架的程序可以通过。
回复 使用道具 举报
“用cc 文件名.c -framework Foundation编译时错误如下:”
你确定你编译时用的 .c ?

点评

一时马虎,用的.c,验证其他程序用的却是.m,这个错误自己还不好找,谢谢啦!  发表于 2014-9-6 17:48
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马