我是ios developpement.i中的新手。在ios 5.1模拟器上运行时有一个项目它工作正常并没有得到任何错误但是在ios 6.0,ios 6.1模拟器上运行的同一个项目我得到了以下错误。可以有人建议我怎么纠正这个问题?
错误:
Undefined symbols for architecture i386:
"_OBJC_CLASS_$_GDataOAuthAuthentication", referenced from:
objc-class-ref in GDataOAuthViewControllerTouch.o
"_OBJC_CLASS_$_GDataOAuthSignIn", referenced from:
objc-class-ref in GDataOAuthViewControllerTouch.o
ld: symbol(s) not found for architecture i386
clang: error: linker command failed with exit code 1 (use -v to see invocation)
答案 0 :(得分:2)
您正在链接尚未针对当前体系结构/ SDK版本编译的外部库。我看到你正在使用VDOAds库,它可能是针对5.1 SDK预编译的。您需要获得为最新iOS SDK预编译的版本。
答案 1 :(得分:2)
试试这个,
主要问题是,我以为你正在使用旧的GData sdk。你刚才 将编译器从Apple LLVM 4.2及其更改为LLVM GCC 4.2 完美编译应用程序。
我附上了截图供您参考
项目 - >目标 - >构建设置 - >构建选项
答案 2 :(得分:0)
TargetSettings - >构建阶段 - >编译源代码并确保包含这些缺少的库。
答案 3 :(得分:0)
因此,您有两个问题,对于警告,库已添加到您的构建阶段,但它们已从项目中删除,它们仍然存在。
对于错误,您正在使用的库未添加到Build Phases - >链接二进制文件库。
因此,为了解决此警告/错误,请转到您的项目目标 - >构建阶段 - >链接Binary With Libraries,并搜索libGoogleAnalytics(我认为这是GA的那个)并删除它(如果不需要)。
还要在其中添加VDOAds
库以修复错误。
我还添加了一个包含目标的屏幕截图,如果您不了解它,将更容易找到它。