Проблема Monotouch Linea Pro SDK с аргументами сборки - PullRequest
1 голос
/ 18 августа 2011

Надеюсь, кто-нибудь может мне помочь или указать мне правильное направление. Я использую monotouch для написания приложения для iPod Touch, которое использует чехол сканера штрих-кода Linea Pro.

У меня есть SDK для чехла Linea Pro, и я следовал следующему уроку

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", на которые ссылаются из: - [CommStream readThread:] в libLineaSDK.a (CommStream.o) - [Поток CommStream: handleEvent:] в libLineaSDK.a (CommStream.o) - [EAStream eaClean] в libLineaSDK.a (EAStream.o) - [EAStream EAAccessoryDidConnect:] в libLineaSDK.a (EAStream.o) - [Linea paperStatus:] в libLineaSDK.a (LineaSDK.o) - [Линейная магнитная карта данных: дорожка 2: дорожка 3:] в libLineaSDK.a (LineaSDK.o) - [Linea smartCardRemoved] в libLineaSDK.a (LineaSDK.o) - [Linea smartCardInserted] в libLineaSDK.a (LineaSDK.o) - [Linea barcodeData: type:] в libLineaSDK.a (LineaSDK.o) - [Linea btmSetEnabled:] в libLineaSDK.a (LineaSDK.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: том: beepData: длина:] в libLineaSDK.a (LineaSDK.o) - [Linea processData:] в libLineaSDK.a (LineaSDK.o) - [Linea sendCommand: команда: inData: inLength: outData:] в libLineaSDK.a (LineaSDK.o) - [Linea setConnState:] в libLineaSDK.a (LineaSDK.o) - [Linea processBTEvents:] в libLineaSDK.a (LineaSDK.o) - [Linea dealloc] в libLineaSDK.a (LineaSDK.o) - [Принтер msProcessFinancialCard: дорожка1: дорожка2:] в libLineaSDK.a (PrinterSDK.o) - [Принтер cryptoRawSetKey: encryptedData:] в libLineaSDK.a (PrinterSDK.o) - [Принтер closeChannel:] в libLineaSDK.a (PrinterSDK.o) - [Принтер openChannel:] в libLineaSDK.a (PrinterSDK.o) - [Принтер flushCache] в libLineaSDK.a (PrinterSDK.o) - [Принтер initCheck] в libLineaSDK.a (PrinterSDK.o) - [Данные процесса принтера:] в libLineaSDK.a (PrinterSDK.o)- [Printer setConnState:] в libLineaSDK.a (PrinterSDK.o) ld: символ (ы) не найдены collect2: ld вернул 1 состояние выхода (1) (SwipeIT)

Может кто-нибудь мне помочьв любом случае или указать мне в правильном направлении?любой совет был бы очень признателен.

1 Ответ

1 голос
/ 18 августа 2011

__ 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

...