带构建参数的Monotouch Linea Pro SDK问题

时间:2011-08-18 14:57:50

标签: c++ iphone ios xamarin.ios linea-pro

希望有人可以帮助我或指出我正确的方向。我正在使用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/tmp140720c3.tmp/main.m:2058:   警告:从指针强制转换为不同大小的整数   /var/folders/0q/kc6tw0jd35n7nsc4fmt98yvm0000gn/T/tmp140720c3.tmp/main.m:2058:   警告:初始化使得指针来自整数而没有强制转换   未定义的符号:“__ Unwind_Resume_or_Rethrow”,引自:          - libLineaSDK.a中的[CommStream readThread:](CommStream.o)          - libLineaSDK.a中的[CommStream stream:handleEvent:](CommStream.o)          - libLineaSDK.a中的[EAStream eaClean](EAStream.o)          - libLineaSDK.a中的[EAStream EAAccessoryDidConnect:](EAStream.o)          - libLineaSDK.a中的[Linea paperStatus:](LineaSDK.o)          - libLineaSDK.a中的[Linea magneticCardData:track2:track3:](LineaSDK.o)          - libLineaSDK.a中的[Linea smartCardRemoved](LineaSDK.o)          - libLineaSDK.a中的[Linea smartCardInserted](LineaSDK.o)          - libLineaSDK.a中的[Linea barcodeData:type:](LineaSDK.o)          - libLineaSDK.a中的[Linea btmSetEnabled:](LineaSDK.o)          - libLineaSDK.a中的[Linea btmGetEnabled](LineaSDK.o)          - libLineaSDK.a中的[Linea bt301ReadThread:](LineaSDK.o)          - libLineaSDK.a中的[Linea cryptoAuthenticateiPod:](LineaSDK.o)          - libLineaSDK.a中的[Linea setBarcodeTypeMode:](LineaSDK.o)          - libLineaSDK.a中的[Linea getBarcodeTypeMode](LineaSDK.o)          - libLineaSDK.a中的[Linea msProcessFinancialCard:track1:track2:](LineaSDK.o)          - libLineaSDK.a中的[Linea updateFirmware:](LineaSDK.o)          - libLineaSDK.a中的[Linea playSound:beepData:length:](LineaSDK.o)          - libLineaSDK.a中的[Linea setScanBeep:volume:beepData:length:](LineaSDK.o)          - libLineaSDK.a中的[Linea processData:](LineaSDK.o)          - libLineaSDK.a中的[Linea sendCommand:command:inData:inLength:outData:](LineaSDK.o)          - libLineaSDK.a中的[Linea setConnState:](LineaSDK.o)          - libLineaSDK.a中的[Linea processBTEvents:](LineaSDK.o)          - libLineaSDK.a中的[Linea dealloc](LineaSDK.o)          - libLineaSDK.a中的[Pri​​nter msProcessFinancialCard:track1:track2:](PrinterSDK.o)          - libLineaSDK.a中的[Pri​​nter cryptoRawSetKey:encryptedData:](PrinterSDK.o)          - libLineaSDK.a中的[Pri​​nter closeChannel:](PrinterSDK.o)          - libLineaSDK.a中的[Pri​​nter openChannel:](PrinterSDK.o)          - libLineaSDK.a中的[Pri​​nter flushCache](PrinterSDK.o)          - libLineaSDK.a中的[Pri​​nter initCheck](PrinterSDK.o)          - libLineaSDK.a中的[Pri​​nter processData:](PrinterSDK.o)          - libLineaSDK.a中的[Pri​​nter setConnState:](PrinterSDK.o)ld:找不到符号collect2:ld返回1退出状态(1)(SwipeIT)

任何人都可以帮助我或者指出我正确的方向吗?任何建议都会非常感激。

1 个答案:

答案 0 :(得分: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