2013-03-15 3 views
1

Я пытаюсь использовать библиотеку hidapi под Ubuntu 12.04. Однако я следил за учебником в github, однако даже тестовый код, который поставляется с ним, не работает. Он всегда жалуется на неопределенные ссылки. Я не могу найти решение. Я не могу найти библиотеку где угодно, даже после успешной установки.Hidapi не может скомпилировать код под ubuntu

Я пытаюсь скомпилировать hidtest.cpp, первая ошибка находится в строке hid_init().

Не мог бы кто-нибудь мне помочь?

EDIT:

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

+0

Можете ли вы разместить журнал ошибок? Будет полезно – lucasg

+0

Выполняете ли вы 'make' из корневого каталога проекта или вызываете' Makefile' в каталоге 'hidtest'? – jazzbassrob

+0

Имеет ли ваш источник #include «hidapi.h» – TheMathemagician

ответ

3

Те ошибки линкера:

collect2: Л.Д. возвращается 1 статус выхода

Первоначально я думал, что вы не связываете свой код с библиотекой hidapi, но единственный способ, которым я случайно воспроизвел точные ошибки, которые у вас были, - это установить параметры gcc в неправильном порядке. Это терпит неудачу с тем же выходом:

$ g++ -c -Ihidapi hidtest/hidtest.cpp -o hidtest/hidtest.o 
$ g++ -Llinux/.libs -lhidapi-hidraw hidtest/hidtest.o -o test 

Ваш файл объект должен появиться перед библиотекой в ​​ССАГПЗ аргументов для стадии связывания.

следующие работы просто отлично:

$ 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.

+0

Спасибо. Я ожидал чего-то подобного, но я не был уверен. – Fred

Смежные вопросы