未定义符号:. objc_class_name_uisscreen

Undefined symbols: .objc_class_name_UIScreen

本文关键字:class uisscreen name objc 符号 未定义      更新时间:2023-10-16

我不确定我做错了什么,我相信我正确地链接,但它总是在链接我试图构建的项目期间失败,只是一个简单的UIScreen Hello World应该很容易正确,如果我的工具链设置正确(确认C,objc,c++工作)。在测试实际的SDK时还没有成功)。我在HelloWorld中包含了UIKit/uisscreen .h。m(唯一的文件,甚至提到uisscreen),如果需要的话,我会张贴代码在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

ehh认为这肯定会得到至少一个响应:(

看起来你正在尝试在一个不受支持的平台(例如Linux)上构建一个iOS应用程序,使用一个古老的非官方开发工具包。这行不通——iOS唯一支持的开发工具包是苹果在Mac OS x上运行的XCode环境。

*:我在网上找到的"heavenly-1.1.4"的参考资料表明,它是2008年左右发布的非官方开发工具包的一部分,在官方开发工具包发布之前。