Меню

+7 (495) 785-95-25
sale@lcard.ru
sale@lcard.ru
Страницы 1
Тема закрыта
|
||||
|
Ошибки в библиотеке LComp под linux1) Если устройство уже открыто, то функция CreateInstance должна выставить errno в L_ERROR_INUSE. В реальности иногда в errno стоит EBUSY, и эта константа никак не проверяется в строках 61-66 файла maincomp.cpp Добавил проверку на EBUSY:
Поидее здесь нужно описать каждую возможную константу, или для всех прочих выставлять L_ERROR. 2) Функция CreateInstance описана только в maincomp.cpp, и это порождает странный баг:
g++ -shared test.o -o libtest.so -ldl /usr/lib/liblcomp.so Если добавить заголовок функции в ifc_ldev.h, то линкуется и работает. Я все сделал правильно, или есть решение лучше? |
|||
|
||||
|
Re: Ошибки в библиотеке LComp под linuxНу насчет lcomp не скажу. Но в C++, если линкуетесь к библиотеке через ld, то используемые функции в любом случае должны быть объявлены, так как реально экспортируемое из .so имя функции зависит от списка параметров (ведь могут быть перегруженные функции), т.е. если компилятор не знает списка параметров и типов, то и имя подберет неправильное (да и вообще использование функции без объявления - как минимум warning). Так что для линковки через ld Ваш вариант правильный (где именно объявлять технически понятно не принципиально). По-видимому в lcomp предполагается, что основной вариант использования - через dlopen, поэтому нет объявления. |
|||
|
||||
|
Re: Ошибки в библиотеке LComp под linuxПо пункту 1:
|
|||
|
||||
|
Re: Ошибки в библиотеке LComp под linuxТак задумано.через dlopen в linux и LoadLibary в win. Чтобы не думать о lib файле. С обработкой ошибок в том месте вообще сложный момент - надо переосмыслить. Главное что NULL вернет. |
|||
|
||||
|
Re: Ошибки в библиотеке LComp под linuxВ вашем варианте dlopen вызывается вначале программы, а dlclose в конце.
Мне видится такой подход гораздо удобнее и безопаснее. Но возможно с ним будут проблемы в windows, с их линковкой я мало знаком. |
|||
|
||||
|
Re: Ошибки в библиотеке LComp под linuxя себе пометил. когда буду заниматься библиотекой посмотрю.... |
Страницы 1
Тема закрыта