黑马程序员技术交流社区

标题: 编译问题, 有懂的请进! [打印本页]

作者: 愿望    时间: 2014-7-19 13:24
标题: 编译问题, 有懂的请进!
本帖最后由 愿望 于 2014-7-19 22:15 编辑

这段代码,是我为了先熟悉而照着老师原文而敲打的。可是我编译的时候却出错了,仔细看了几遍,没有发现我的和老师有不一样的,但是老师的却编译通过了。 我的怎么不行, 编译结果用谷歌翻译看了一下,说是  在C99中无效[使用-Wimplicit函数声明]  , 这个我就不懂了,是版本的什么问题么, 我不懂的,    有懂的请说下,感激不尽! 最好能有解决办法

#import <Foundation/Foundation.h>

@interface Car : NSObject
{   
    @public
    int wheels;
    int speed ;   
}
@end

@implementation Car
@end

int main()
{
    Car *p = [Car new];
    p->wheels = 4;
    p->speed = 100;
    NSlog(@"车子有%d个轮子,时速是%dkm/h", p->wheels, p->speed);
    return  0;
}


这是我编译的结果 警告
bogon:0719 smile$ cc -c 第一个oc的类.m
第一个oc的类.m:23:5: warning: implicit declaration of function 'NSlog' is
      invalid in C99 [-Wimplicit-function-declaration]
    NSlog(@"车子有%d个轮子,时速是%dkm/h", p->wheels, p->speed);
    ^
1 warning generated.

链接的时候额外又多了个错误
Undefined symbols for architecture x86_64:
  "_NSlog", referenced from:
      _main in 第一个oc的类-2af46c.o
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
谷歌翻译是:未定义的符号为x86_64的架构:
  “_NSlog”,从引用:
      _main中第一个OC的类
错误:链接器命令失败,退出代码为1(使用-v看看调用)




作者: 为梦想挺身而出    时间: 2014-7-19 13:32
NSLog  这个L要大写
作者: 愿望    时间: 2014-7-19 22:18
为梦想挺身而出 发表于 2014-7-19 13:32
NSLog  这个L要大写

。。。。我看好多次, 愣是没看出来, 我还记得我检查的时候“哦 ,是大写的”   这个L太坑了,  谢谢你, 目光如炬的小伙伴啊
作者: 为梦想挺身而出    时间: 2014-7-20 09:37
愿望 发表于 2014-7-19 22:18
。。。。我看好多次, 愣是没看出来, 我还记得我检查的时候“哦 ,是大写的”   这个L太坑了,  谢谢你, ...

哈哈  这个我之前跟你一样 所以印象深刻
作者: 愿望    时间: 2014-7-20 14:45
为梦想挺身而出 发表于 2014-7-20 09:37
哈哈  这个我之前跟你一样 所以印象深刻

哈哈! 熟练的问题  
作者: 请叫我黄大仙    时间: 2016-1-26 00:14
唉.....一样的NSLog没大写,结果报错C99




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2