[英]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.