Objective c gcc编译错误:在此处将参数传递给参数

Objective c gcc编译错误:在此处将参数传递给参数,objective-c,c,gcc,Objective C,C,Gcc,我刚刚开始学习c和objective c,我制作了一个简单的脚本: #import <Foundation/Foundation.h> #include <stdio.h> int s; int main() { NSString *s = (@"Hello World"); printf(s); return 0 } #导入 #包括 int-s; int main() { NSString*s=(@“Hello World”); printf(s);; 返回0 }

我刚刚开始学习c和objective c,我制作了一个简单的脚本:

  #import <Foundation/Foundation.h>
#include <stdio.h>
int s;
int main()
{
NSString *s = (@"Hello World");
printf(s);
return 0
}
#导入
#包括
int-s;
int main()
{
NSString*s=(@“Hello World”);
printf(s);;
返回0
}
但是,当我尝试在gcc中编译它时,我得到了错误:

在此处将参数传递给参数

int printf(const char*\uuuuu restrict,…)\uuuu printflike(1,2)

我做错了什么?

试试这个

#import <Foundation/Foundation.h>
int main(void)
{
    NSLog(@"Hello World");
    return 0;
}
#导入
内部主(空)
{
NSLog(“你好世界”);
返回0;
}

NSLog获取objective-C字符串并将其打印到控制台。

很抱歉,这听起来很粗鲁,但更好的问题是您没有做错什么——对于这个简单的代码片段,我认为您是在跟踪。如果你是真的,我建议你选择一本好书开始学习,它是C/ObjC的一个很好的(而且显然是免费的)入门书。是的,我一般都犯了一些错误,(我真的是新手,现在是午夜,我用我当时应该知道的东西纠正了它)但主要的问题是我无法得到任何我输入/复制的东西来运行。正如Charlie Burns在下面指出的,我遇到的主要问题是我不知道如何链接框架。(在任何地方都找不到框架)现在它将被编译,我真的可以开始学习了!PS谢谢你的书,我打算从头读到尾!(:哦,是的,我现在明白了。我犯了一些愚蠢的错误。但是现在我得到了这个错误,它仍然无法编译:ld:symbol未找到架构x86_64 clang:error:linker命令失败,退出代码为1(使用-v查看调用)您是在xcode中执行此操作的吗?如果不是,您需要与他们的库链接以获取NSLog。不,我没有使用xcode。如何与库链接?请尝试类似“gcc file.m-framework Cocoa”的命令行其中file.m是您的文件名。非常感谢!这很有效,而且由于某些原因,我在手册页或其他地方找不到-framework命令。我在这方面有点生疏,再次感谢!