1

希望有人可以帮助我或指出我正确的方向。我正在使用 monotouch 编写一个使用 Linea Pro 条码扫描仪外壳的 iPod Touch 应用程序。

我有适用于 Linea Pro 案例的 SDK,并且我遵循了以下教程

http://blog.davidsandor.com/post/2011/01/05/iPhone-iTouch-barcode-scanning-Hello-World-application-with-MonoTouch-and-LineaSDK.aspx

(你可以看到我已经发布了一个请求帮助的回复,但我对“非拇指”构建有点困惑)

我尝试匹配建议的 montouch 等版本,但找不到 monotouch 3.2.4

我遇到的问题是,当我在构建选项中输入参数时,应用程序会立即启动并崩溃,如果我删除构建参数,应用程序会正常启动,但 linea pro 案例将不起作用(如您所料)

我正在使用的构建参数是

-v -gcc_flags "-L${ProjectDir} -lLineaSDK -framework AudioToolbox -framework CoreGraphics -framework ExternalAccessory -ObjC"

如果我尝试通过模拟器构建它,我会得到以下信息

错误 1:mtouch 失败并显示以下消息:/var/folders/0q/kc6tw0jd35n7nsc4fmt98yvm0000gn/T/tmp140720c3.tmp/main.m:在函数“main”中:/var/folders/0q/kc6tw0jd35n7nsc4fmt98yvm0000gn/T/tmp140720c3.tmp main.m:1838:警告:函数“monotouch_enable_debug_tracking”的隐式声明/var/folders/0q/kc6tw0jd35n7nsc4fmt98yvm0000gn/T/tmp140720c3.tmp/main.m:1921:警告:函数“mini_get_debug_options”的隐式声明/var/folders/ 0q/kc6tw0jd35n7nsc4fmt98yvm0000gn/T/tmp140720c3.tmp/main.m:1925:警告:函数“mono_debugger_agent_parse_options”的隐式声明/var/folders/0q/kc6tw0jd35n7nsc4fmt98yvm0000gn/T/tmp1402058:指向不同大小整数的指针/var/folders/0q/kc6tw0jd35n7nsc4fmt98yvm0000gn/T/tmp140720c3。tmp/main.m:2058:警告:初始化使指针从没有强制转换的整数生成未定义符号:“__Unwind_Resume_or_Rethrow”,引用自:-[CommStream readThread:] in libLineaSDK.a(CommStream.o) -[CommStream stream:handleEvent: ] 在 libLineaSDK.a(CommStream.o) -[EAStream eaClean] 在 libLineaSDK.a(EAStream.o) -[EAStream EAAccessoryDidConnect:] 在 libLineaSDK.a(EAStream.o) -[Linea paperStatus:] 在 libLineaSDK.a( LineaSDK.o) -[Linea MagneticCardData:track2:track3:] 在 libLineaSDK.a(LineaSDK.o) -[Linea smartCardRemoved] 在 libLineaSDK.a(LineaSDK.o) -[Linea smartCardInserted] 在 libLineaSDK.a(LineaSDK.o) ) -libLineaSDK.a(LineaSDK.o) 中的[LineabarcodeData:type:] -libLineaSDK.a(LineaSDK.o) 中的[Linea btmSetEnabled:]o) -[Linea btmGetEnabled] 在 libLineaSDK.a(LineaSDK.o) -[Linea bt301ReadThread:] 在 libLineaSDK.a(LineaSDK.o) -[Linea cryptoAuthenticateiPod:] 在 libLineaSDK.a(LineaSDK.o) -[Linea setBarcodeTypeMode :] 在 libLineaSDK.a(LineaSDK.o) -[Linea getBarcodeTypeMode] 在 libLineaSDK.a(LineaSDK.o) -[Linea msProcessFinancialCard:track1:track2:] 在 libLineaSDK.a(LineaSDK.o) -[Linea updateFirmware:]在 libLineaSDK.a(LineaSDK.o) -[Linea playSound:beepData:length:] 在 libLineaSDK.a(LineaSDK.o) -[Linea setScanBeep:volume:beepData:length:] 在 libLineaSDK.a(LineaSDK.o) - [Linea processData:] 在 libLineaSDK.a(LineaSDK.o) -[Linea sendCommand:command:inData:inLength:outData:] 在 libLineaSDK.a(LineaSDK.o) -[Linea setConnState:] 在 libLineaSDK.a(LineaSDK.o) -[Linea processBTEvents:] in libLineaSDK.a(LineaSDK.o) -[Linea dealloc] in libLineaSDK.a(LineaSDK.o) -[Printer msProcessFinancialCard:track1:track2:] in libLineaSDK.a(PrinterSDK.o) -[Printer cryptoRawSetKey:encryptedData:] in libLineaSDK.a(PrinterSDK.o) -[Printer closeChannel:] in libLineaSDK.a(PrinterSDK.o) -[Printer openChannel:] in libLineaSDK.a(PrinterSDK.o) -[Printer flushCache] 在 libLineaSDK.a(PrinterSDK.o) -[Printer initCheck] 在 libLineaSDK.a(PrinterSDK.o) -[Printer processData:] 在 libLineaSDK.a(PrinterSDK.o) -[Printer setConnState:] 在 libLineaSDK.a (PrinterSDK.o) ld: 未找到符号 collect2: ld 返回 1 个退出状态 (1) (SwipeIT)o) -[Printer msProcessFinancialCard:track1:track2:] 在 libLineaSDK.a(PrinterSDK.o) -[Printer cryptoRawSetKey:encryptedData:] 在 libLineaSDK.a(PrinterSDK.o) -[Printer closeChannel:] 在 libLineaSDK.a(PrinterSDK .o) -[Printer openChannel:] in libLineaSDK.a(PrinterSDK.o) -[Printer flushCache] in libLineaSDK.a(PrinterSDK.o) -[Printer initCheck] in libLineaSDK.a(PrinterSDK.o) -[Printer processData :] 在 libLineaSDK.a(PrinterSDK.o) -[Printer setConnState:] 在 libLineaSDK.a(PrinterSDK.o) ld: 未找到符号 collect2: ld 返回 1 个退出状态 (1) (SwipeIT)o) -[Printer msProcessFinancialCard:track1:track2:] in libLineaSDK.a(PrinterSDK.o) -[Printer cryptoRawSetKey:encryptedData:] in libLineaSDK.a(PrinterSDK.o) -[Printer closeChannel:] in libLineaSDK.a(PrinterSDK .o) -[Printer openChannel:] in libLineaSDK.a(PrinterSDK.o) -[Printer flushCache] in libLineaSDK.a(PrinterSDK.o) -[Printer initCheck] in libLineaSDK.a(PrinterSDK.o) -[Printer processData :] 在 libLineaSDK.a(PrinterSDK.o) -[Printer setConnState:] 在 libLineaSDK.a(PrinterSDK.o) ld: 未找到符号 collect2: ld 返回 1 个退出状态 (1) (SwipeIT)] 在 libLineaSDK.a(PrinterSDK.o) -[Printer flushCache] 在 libLineaSDK.a(PrinterSDK.o) -[Printer initCheck] 在 libLineaSDK.a(PrinterSDK.o) -[Printer processData:] 在 libLineaSDK.a(PrinterSDK .o) -[Printer setConnState:] in libLineaSDK.a(PrinterSDK.o) ld: 未找到符号 collect2: ld 返回 1 个退出状态 (1) (SwipeIT)] 在 libLineaSDK.a(PrinterSDK.o) -[Printer flushCache] 在 libLineaSDK.a(PrinterSDK.o) -[Printer initCheck] 在 libLineaSDK.a(PrinterSDK.o) -[Printer processData:] 在 libLineaSDK.a(PrinterSDK .o) -[Printer setConnState:] in libLineaSDK.a(PrinterSDK.o) ld: 未找到符号 collect2: ld 返回 1 个退出状态 (1) (SwipeIT)

无论如何,任何人都可以帮助我或指出我正确的方向吗?任何建议将不胜感激。

4

1 回答 1

1

__Unwind_Resume_or_Rethrow 是一个 C++ 符号 [1],因此您应该在已经提供的选项中添加一个“--cxx”选项。

这将从 gcc (C) 切换到 g++ (C++) 编译器/链接器,并且应该为库提供缺少的符号。

[1] http://refspecs.freestandards.org/LSB_4.1.0/LSB-Core-generic/LSB-Core-generic/baselib--unwind-resume-or-rethrow.html

于 2011-08-18T17:04:23.860 回答