2013-02-11 73 views
0

我喜歡用libusb做usb編程。 我安裝了它使用linux中的libusb

$ apt-get install libusb-1.0 

然後

$ apt-get install libusb-1.0-0-dev 

,但之後我嘗試在C代碼中使用它,也有編譯器錯誤。

#include <stdio.h> 

#include <libusb-1.0/libusb.h> 

int main(){ 
    usb_init(NULL); 
    return 0; 
} 

編譯器錯誤是:

 
**/tmp/ccgCZXTu.o: In function `main': 
test.c:(.text+0xf): undefined reference to `usb_init' 
collect2: error: ld returned 1 exit status** 

爲什麼會出現這種情況?

回答

4

這是一個鏈接器錯誤,您不告訴編譯器您的代碼需要與libusb庫鏈接。

僅僅使用C語言編寫的#include對於這件事來說是不夠的,它所做的只是提供談論庫的代碼所需的聲明,它並不以任何方式引用代碼本身。

$(pkg-config --libs libusb)添加到您的GCC命令行。

-1

你可以把它作爲:

#include </usr/local/include/libusb-1.0/libusb.h> 
0

考慮到使用

pkg-config --libs libusb-1.0 

爲的libusb-1.0