未定义的符号:.objc_class_name_UIScreen

时间:2011-10-04 15:18:03

标签: iphone c++ objective-c ios linux

我不确定我做错了什么我认为我正确连接但是在链接项目期间总是失败我正在尝试构建只是一个简单的UIScreen Hello World如果我的工具链应该很容易设置正确(确认C,objc,c ++工作。虽然没有成功测试实际的SDK)。我已经在HelloWorld.m中包含了UIKit / UIScreen.h(唯一提到UIScreen的文件),如果需要,我会在pastebin上发布代码。这在链接期间是非常奇怪的失败但我已经根据我的知识链接了必要的库。

尝试编译的输出:

arm-apple-darwin-gcc -c -I"/usr/local/include"  -I"/usr/local/include"  -F"/home/artillery/iPhone-1.1.4/System/Library/Frameworks"  -F"/iPhone-1.1.4/heavenly-1.1.4/System/Library/PrivateFrameworks"  -DDEBUG -Wall -std=c99 -v3 -DMAC_OS_X_VERSION_MAX_ALLOWED=1050 Classes/HelloWorldApp.m -o Classes/HelloWorldApp.o
arm-apple-darwin-gcc -arch arm -lobjc  -framework CoreFoundation  -framework Foundation  -framework UIKit  -framework CoreGraphics  -framework GraphicsServices  -framework CoreSurface  -L"/usr/local/lib" -F"/home/artillery/iPhone-1.1.4/heavenly-1.1.4/System/Library/Frameworks" -F"/home/artillery/iPhone-1.1.4/heavenly-1.1.4/System/Library/PrivateFrameworks" -bind_at_load -multiply_defined suppress -o HelloWorld Classes/HelloWorldApp.o Classes/main.o
/usr/local/bin/arm-apple-darwin-ld: Undefined symbols:
.objc_class_name_UIScreen
collect2: ld returned 1 exit status
make: *** [HelloWorld] Error 1

嗯,我认为这至少会得到一个答案:(

1 个答案:

答案 0 :(得分:2)

看起来您正在尝试使用古老的*非官方开发工具包在不受支持的平台(例如Linux)上构建iOS应用程序。这不起作用 - iOS唯一支持的开发工具包是在Mac OS X上运行的Apple的XCode环境。

*:我在网上发现的“heavenly-1.1.4”的引用表明它是2008年左右发布的非正式开发工具包的一部分,在官方开发工具包发布之前。