繁体   English   中英

GVRSDK iOS Xcode链接器错误

[英]GVRSDK iOS Xcode linker error

我正在尝试在用Xcode 8.2,Swift 3.0编写的iOS应用程序中创建GVRCardboardView。 我正在运行GVRVideoView,但是在添加GVRCardboardView时无法编译该应用程序。 我正在使用Bridging-Header来访问硬纸板SDK的Objective C文件。

这是头文件:

#ifndef Bridging_Header_h
#define Bridging_Header_h

#import "GVRWidgetView.h"
#import "GVRPanoramaView.h"
#import "GVROverlayView.h"
#import "GVRVideoView.h"
#import "GVRHeadTransform.h"
#import "GVRCardboardView.h"
#import "GVRAudioEngine.h"

#endif

以及编译时产生的错误...

ld: library not found for -lGVRView_arm
clang: error: linker command failed with exit code 1 (use -v to see invocation)

如果我从以下位置更改Podfile :(请参阅@ https://github.com/googlevr/gvr-ios-sdk/blob/master/Samples/TreasureHunt/Podfile

target 'My App Name' do
    pod 'GVRSDK/SDK'
end

至:

target 'My App Name' do
    pod 'GVRSDK'
end

然后导致的错误变为:

Undefined symbols for architecture armv7:
"_OBJC_CLASS_$_GVRCardboardView", referenced from:
  objc-class-ref in MyGVRViewController.o
ld: symbol(s) not found for architecture armv7
clang: error: linker command failed with exit code 1 (use -v to see invocation)

看来现在该应用程序可以找到-lGVRView_arm代码,但现在无法正确链接到GVRCardboardView目标C类。

我想念什么? 为什么我的应用程序无法编译?

- 编辑 -

由于错误表明体系结构armv7有未定义的符号,因此我尝试了使用arm64的较新设备。 我仍然收到类似的错误。

根据该项目的一位合作者说,这是最新版本的GVRSDK(版本1.10.0)中的一个错误, 网址为https://github.com/googlevr/gvr-ios-sdk/issues/189

尝试在同一项目中使用某种形式的GVRVideoView(或其他GVRView)类和GVRCardboardView时,会出现此问题。 在最新版本中,这些类分为不同的.a文件:libGVRSDK_arm.a和libGVRView_arm.a。 尝试同时下载和使用它们两个都将导致重复的文件错误。

要解决此问题,请将CocoaPod的先前版本与以下Podfile一起使用,并等待更新...

target 'My App Name' do
    pod 'GVRSDK', '1.0.1'
end

pod 'CardboardSDK'添加到Pod文件中并进行pod install ,然后将以下内容导入到桥接头中

#import "GCSCardboardView.h"
#import "GCSCardboardAudioEngine.h"
#import "GCSHeadTransform.h"
#import "GCSWidgetView.h"
#import "GCSPanoramaView.h"
#import "GCSVideoView.h"

确保从pod文件中删除pod 'GVRSDK' 此方法对Xcode 8.2.1 Swift 3.0.2有用

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM