我想使用命令行编译器从 MAC OSX 上的命令行编译和链接应用程序。我有一个名为“hello.m”的源文件,如下所示:
#import <Foundation/Foundation.h>
int main(int argc,char *argv[])
{
NSLog(@"hello world\n");
return 0;
}
在命令提示符下,我键入:
$ clang -o hello hello.m
但编译器返回:
Undefined symbols for architecture x86_64:
"_NSLog", referenced from:
_main in main-74f615.o
ld: symbol(s) not found for architecture x86_64
显然,当我调用 NSLog 时,我需要链接到一个库。我需要链接哪个库?
最佳答案
您需要链接到的库是“基础”。这是您在文件顶部导入的框架。如果这是在 Xcode 中,它会通过项目设置/自动化框架检测为您设置框架链接。直接使用clang时,需要通过-framework
标志以正确链接到它们。
clang -framework Foundation -o hello hello.m
关于objective-c - 要链接哪个 OSX 库(命令行)以使用 NSLog?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40940357/