Frage

Hopefully someone can help me or point me in the right direction. I am using monotouch to write an iPod Touch app that uses the Linea Pro barcode scanner case.

I have the SDK for the Linea Pro case and I've followed the following tutorial

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

(you can see I've posted a response asking for help but I'm a little confused by the "non-thumb" build)

I have tried matching the suggested versions of montouch etc but cannot find monotouch 3.2.4

The issue i am having is when i enter the arguments in to the build options the app launches and crashes straight away, if i remove the build arguments the app launches fine but the linea pro case will not work (as you would expect)

the build argument I'm using is

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

if I try and build it via the simulator i get the follow

Error 1: mtouch failed with the following message: /var/folders/0q/kc6tw0jd35n7nsc4fmt98yvm0000gn/T/tmp140720c3.tmp/main.m: In function 'main': /var/folders/0q/kc6tw0jd35n7nsc4fmt98yvm0000gn/T/tmp140720c3.tmp/main.m:1838: warning: implicit declaration of function 'monotouch_enable_debug_tracking' /var/folders/0q/kc6tw0jd35n7nsc4fmt98yvm0000gn/T/tmp140720c3.tmp/main.m:1921: warning: implicit declaration of function 'mini_get_debug_options' /var/folders/0q/kc6tw0jd35n7nsc4fmt98yvm0000gn/T/tmp140720c3.tmp/main.m:1925: warning: implicit declaration of function 'mono_debugger_agent_parse_options' /var/folders/0q/kc6tw0jd35n7nsc4fmt98yvm0000gn/T/tmp140720c3.tmp/main.m:2058: warning: cast from pointer to integer of different size /var/folders/0q/kc6tw0jd35n7nsc4fmt98yvm0000gn/T/tmp140720c3.tmp/main.m:2058: warning: initialization makes pointer from integer without a cast Undefined symbols: "__Unwind_Resume_or_Rethrow", referenced from: -[CommStream readThread:] in libLineaSDK.a(CommStream.o) -[CommStream stream:handleEvent:] in libLineaSDK.a(CommStream.o) -[EAStream eaClean] in libLineaSDK.a(EAStream.o) -[EAStream EAAccessoryDidConnect:] in libLineaSDK.a(EAStream.o) -[Linea paperStatus:] in libLineaSDK.a(LineaSDK.o) -[Linea magneticCardData:track2:track3:] in libLineaSDK.a(LineaSDK.o) -[Linea smartCardRemoved] in libLineaSDK.a(LineaSDK.o) -[Linea smartCardInserted] in libLineaSDK.a(LineaSDK.o) -[Linea barcodeData:type:] in libLineaSDK.a(LineaSDK.o) -[Linea btmSetEnabled:] in libLineaSDK.a(LineaSDK.o) -[Linea btmGetEnabled] in libLineaSDK.a(LineaSDK.o) -[Linea bt301ReadThread:] in libLineaSDK.a(LineaSDK.o) -[Linea cryptoAuthenticateiPod:] in libLineaSDK.a(LineaSDK.o) -[Linea setBarcodeTypeMode:] in libLineaSDK.a(LineaSDK.o) -[Linea getBarcodeTypeMode] in libLineaSDK.a(LineaSDK.o) -[Linea msProcessFinancialCard:track1:track2:] in libLineaSDK.a(LineaSDK.o) -[Linea updateFirmware:] in libLineaSDK.a(LineaSDK.o) -[Linea playSound:beepData:length:] in libLineaSDK.a(LineaSDK.o) -[Linea setScanBeep:volume:beepData:length:] in libLineaSDK.a(LineaSDK.o) -[Linea processData:] in libLineaSDK.a(LineaSDK.o) -[Linea sendCommand:command:inData:inLength:outData:] in libLineaSDK.a(LineaSDK.o) -[Linea setConnState:] in 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] in libLineaSDK.a(PrinterSDK.o) -[Printer initCheck] in libLineaSDK.a(PrinterSDK.o) -[Printer processData:] in libLineaSDK.a(PrinterSDK.o) -[Printer setConnState:] in libLineaSDK.a(PrinterSDK.o) ld: symbol(s) not found collect2: ld returned 1 exit status (1) (SwipeIT)

Can anyone help me out in anyway or point me in the right direction? any advice would be really appreciated.

War es hilfreich?

Lösung

__Unwind_Resume_or_Rethrow is a C++ symbol [1] so you should add a "--cxx" option to the one you are already providing.

This will switch from gcc (C) to g++ (C++) compilers/linkers and should provide the library with the missing symbols.

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

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top