Я пытаюсь использовать библиотеку hidapi под Ubuntu 12.04. Я следовал руководству по github, однако, даже тестовый код, который идет с ним, не работает. Он всегда жалуется на неопределенную ссылку. Я не могу найти никакого решения. Я не могу найти библиотеку в любом месте, даже после успешной установки.
Я пытаюсь скомпилировать hidtest.cpp, первая ошибка в hid_init()
линия.
Может ли кто-нибудь помочь мне?
РЕДАКТИРОВАТЬ:
make all
Building target: hidtest
Invoking: Cross G++ Linker
g++ -o "hidtest" ./src/hidtest.o
./src/hidtest.o: In function `main':
/../src/hidtest.cpp:35: undefined reference to `hid_init'
/../src/hidtest.cpp:38: undefined reference to `hid_enumerate'
/../src/hidtest.cpp:53: undefined reference to `hid_free_enumeration'
/../src/hidtest.cpp:63: undefined reference to `hid_open'
/../src/hidtest.cpp:71: undefined reference to `hid_get_manufacturer_string'
/../src/hidtest.cpp:78: undefined reference to `hid_get_product_string'
/../src/hidtest.cpp:85: undefined reference to `hid_get_serial_number_string'
/../src/hidtest.cpp:93: undefined reference to `hid_get_indexed_string'
/../src/hidtest.cpp:99: undefined reference to `hid_set_nonblocking'
/../src/hidtest.cpp:103: undefined reference to `hid_read'
/../src/hidtest.cpp:111: undefined reference to `hid_send_feature_report'
/../src/hidtest.cpp:120: undefined reference to `hid_get_feature_report'
/../src/hidtest.cpp:123: undefined reference to `hid_error'
/../src/hidtest.cpp:137: undefined reference to `hid_write'
/../src/hidtest.cpp:140: undefined reference to `hid_error'
/../src/hidtest.cpp:146: undefined reference to `hid_write'
/../src/hidtest.cpp:155: undefined reference to `hid_read'
/../src/hidtest.cpp:173: undefined reference to `hid_close'
/../src/hidtest.cpp:176: undefined reference to `hid_exit'
collect2: ld returned 1 exit status
make: *** [hidtest] Error 1
Это делается под Ubuntu 12.04 и с использованием Eclipse Juno
Это ошибки компоновщика:
collect2: л.д. возвращен 1 статус выхода
Сначала я подумал, что вы не связываете свой код с библиотекой hidapi, но единственный случай, когда мне случайно удалось воспроизвести именно те ошибки, которые у вас были, — это поместить параметры gcc в неправильный порядок. Это не с тем же выводом:
$ g++ -c -Ihidapi hidtest/hidtest.cpp -o hidtest/hidtest.o
$ g++ -Llinux/.libs -lhidapi-hidraw hidtest/hidtest.o -o test
Ваш объектный файл должен появиться перед библиотекой в аргументах gcc для стадии связывания.
Следующее работает просто отлично:
$ g++ -c -Ihidapi hidtest/hidtest.cpp -o hidtest/hidtest.o
$ g++ -Llinux/.libs hidtest/hidtest.o -lhidapi-hidraw -o test
$ LD_LIBRARY_PATH=linux/.libs ./test
Обратите внимание, что я должен использовать -I, -L и LD_LIBRARY_PATH, потому что я не установил hidapi, я сделал все из исходной папки hidapi.
Других решений пока нет …