尝试执行 Wikitude 示例应用程序,但出现这些编译错误

问题描述 投票:0回答:2

使用配置调试构建项目 WikitudeAPI-SCM-Test 的 WikitudeAPI-SCM-Test

Ld build/Debug-iphonesimulator/WikitudeAPI-SCM-Test.app/WikitudeAPI-SCM-Test normal i386
cd /Users/srinivas/Downloads/WikitudeAPI_iPhone_1.0.7/SampleApp
setenv MACOSX_DEPLOYMENT_TARGET 10.6
setenv PATH "/Developer/Platforms/iPhoneSimulator.platform/Developer/usr/bin:/Developer/usr/bin:/usr/bin:/bin:/usr/sbin:/sbin"
/Developer/Platforms/iPhoneSimulator.platform/Developer/usr/bin/gcc-4.2 -arch i386 -isysroot /Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator4.2.sdk -L/Users/srinivas/Downloads/WikitudeAPI_iPhone_1.0.7/SampleApp/build/Debug-iphonesimulator -L../WikitudeAPI -L../WikitudeAPI/usr -L../WikitudeAPI/usr/local -L../WikitudeAPI/usr/local/include -L../WikitudeAPI/usr/local/resources -L../WikitudeAPI/usr/local/resources/images -L../WikitudeAPI/usr/local/resources/libs -L../WikitudeAPI/usr/local/resources/nibs -L../WikitudeAPI/usr/local/resources/images/RECHECK -F/Users/srinivas/Downloads/WikitudeAPI_iPhone_1.0.7/SampleApp/build/Debug-iphonesimulator -filelist /Users/srinivas/Downloads/WikitudeAPI_iPhone_1.0.7/SampleApp/build/WikitudeAPI-SCM-Test.build/Debug-iphonesimulator/WikitudeAPI-SCM-Test.build/Objects-normal/i386/WikitudeAPI-SCM-Test.LinkFileList -mmacosx-version-min=10.6 -all_load -ObjC -Xlinker -objc_abi_version -Xlinker 2 -framework Foundation -framework UIKit -framework CoreGraphics -framework CFNetwork -framework CoreData -framework CoreFoundation -framework CoreLocation -framework MapKit -framework MessageUI -framework QuartzCore -framework SystemConfiguration -lsqlite3.0 -lWikitudeAPI -lGoogleAnalytics -o /Users/srinivas/Downloads/WikitudeAPI_iPhone_1.0.7/SampleApp/build/Debug-iphonesimulator/WikitudeAPI-SCM-Test.app/WikitudeAPI-SCM-Test

ld: warning: in ../WikitudeAPI/libWikitudeAPI.a, missing required architecture i386 in file
Undefined symbols:
  "_OBJC_CLASS_$_WTPoi", referenced from:
      objc-class-ref-to-WTPoi in WikitudeAPI_SCM_TestAppDelegate.o
      objc-class-ref-to-WTPoi in CustomMenuButtonDelegateImpl1.o
  "_OBJC_CLASS_$_WikitudeARCustomMenuButton", referenced from:
      objc-class-ref-to-WikitudeARCustomMenuButton in WikitudeAPI_SCM_TestAppDelegate.o
  "_OBJC_CLASS_$_WikitudeARViewController", referenced from:
      objc-class-ref-to-WikitudeARViewController in WikitudeAPI_SCM_TestAppDelegate.o
      objc-class-ref-to-WikitudeARViewController in CustomMenuButtonDelegateImpl1.o
      objc-class-ref-to-WikitudeARViewController in CustomMenuButtonDelegateImpl3.o
ld: symbol(s) not found
collect2: ld returned 1 exit status
ios sdk wikitude
2个回答
2
投票

Wikitude SDK 仅适用于实际的 iOS 设备,模拟器不支持相机和必要的传感器(加速度计、磁力计)。

请尝试在实际的 iOS 设备上构建和部署,然后一切都应该按预期工作。

干杯, 尼古拉斯


0
投票

这是一篇旧帖子,但我没有找到肯定的答案。实际上,我找到了一种方法可以在模拟器中进行编译。

首先,我使用 Wikitude 实现编辑了类(h 和 m)并使用条件:当它不是模拟器时它加载一个接口和实现,当它是模拟器时它加载另一个接口和实现:

示例.h

#import <UIKit/UIKit.h>
#import "Example.h"

#if !TARGET_IPHONE_SIMULATOR
#import <WikitudeSDK/WTArchitectView.h>

@interface Example : UIViewController <WTArchitectViewDelegate>
{
    WTArchitectView *_architectView;
}

@property (nonatomic, strong) WTArchitectView *architectView;

@end
#else
@interface Example : UIViewController {

}

@end
#endif

示例.m

#import "Example.h"

#if !TARGET_IPHONE_SIMULATOR
@interface Example () {
}

@end

@implementation Example // implementation for devices
.
.
.
@end
#else
@interface Example ()

@end

@implementation Example // implementation for simulator
.
.
.
@end
#endif

要在模拟器和设备上进行编译之间切换,您只需停用或激活当前目标的 WikitudeSDK.framework:

1)从左侧面板的“Project Navigator”中选择WikitudeSDK.framework。

2) 使用右侧面板上的“文件检查器”为当前目标停用它。

这对我有用。

致以诚挚的问候!

© www.soinside.com 2019 - 2024. All rights reserved.