簡體   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