I m using Code blocks in Ubuntu Linux. I would like to write programs with the library libusb. I have this file in the system, but the complier in the IDE cannot find this file. I add in "build options" this file, it's not help. What is the solution to this problem?
#include <libusb.h>
Update:
dpkg -L libusb-dev
shows following:
/.
/usr
/usr/bin
/usr/bin/libusb-config
/usr/include
/usr/include/usb.h
/usr/lib
/usr/lib/libusb.a
/usr/lib/libusb.la
/usr/lib/pkgconfig
/usr/lib/pkgconfig/libusb.pc
/usr/share
/usr/share/doc
/usr/share/doc/libusb-dev
/usr/share/doc/libusb-dev/changelog.gz
/usr/share/doc/libusb-dev/html
/usr/share/doc/libusb-dev/html/index.html
/usr/share/doc/libusb-dev/html/preface.html
/usr/share/doc/libusb-dev/html/intro.html
/usr/share/doc/libusb-dev/html/intro-overview.html
/usr/share/doc/libusb-dev/html/intro-support.html
/usr/share/doc/libusb-dev/html/api.html
/usr/share/doc/libusb-dev/html/api-device-interfaces.html
/usr/share/doc/libusb-dev/html/api-timeouts.html
/usr/share/doc/libusb-dev/html/api-types.html
/usr/share/doc/libusb-dev/html/api-synchronous.html
/usr/share/doc/libusb-dev/html/api-return-values.html
/usr/share/doc/libusb-dev/html/functions.html
/usr/share/doc/libusb-dev/html/ref.core.html
/usr/share/doc/libusb-dev/html/function.usbinit.html
/usr/share/doc/libusb-dev/html/function.usbfindbusses.html
/usr/share/doc/libusb-dev/html/function.usbfinddevices.html
/usr/share/doc/libusb-dev/html/function.usbgetbusses.html
/usr/share/doc/libusb-dev/html/ref.deviceops.html
/usr/share/doc/libusb-dev/html/function.usbopen.html
/usr/share/doc/libusb-dev/html/function.usbclose.html
/usr/share/doc/libusb-dev/html/function.usbsetconfiguration.html
/usr/share/doc/libusb-dev/html/function.usbsetaltinterface.html
/usr/share/doc/libusb-dev/html/function.usbresetep.html
/usr/share/doc/libusb-dev/html/function.usbclearhalt.html
/usr/share/doc/libusb-dev/html/function.usbreset.html
/usr/share/doc/libusb-dev/html/function.usbclaiminterface.html
/usr/share/doc/libusb-dev/html/function.usbreleaseinterface.html
/usr/share/doc/libusb-dev/html/ref.control.html
/usr/share/doc/libusb-dev/html/function.usbcontrolmsg.html
/usr/share/doc/libusb-dev/html/function.usbgetstring.html
/usr/share/doc/libusb-dev/html/function.usbgetstringsimple.html
/usr/share/doc/libusb-dev/html/function.usbgetdescriptor.html
/usr/share/doc/libusb-dev/html/function.usbgetdescriptorbyendpoint.html
/usr/share/doc/libusb-dev/html/ref.bulk.html
/usr/share/doc/libusb-dev/html/function.usbbulkwrite.html
/usr/share/doc/libusb-dev/html/function.usbbulkread.html
/usr/share/doc/libusb-dev/html/ref.interrupt.html
/usr/share/doc/libusb-dev/html/function.usbinterruptwrite.html
/usr/share/doc/libusb-dev/html/function.usbinterruptread.html
/usr/share/doc/libusb-dev/html/ref.nonportable.html
/usr/share/doc/libusb-dev/html/function.usbgetdrivernp.html
/usr/share/doc/libusb-dev/html/function.usbdetachkerneldrivernp.html
/usr/share/doc/libusb-dev/html/examples.html
/usr/share/doc/libusb-dev/html/examples-code.html
/usr/share/doc/libusb-dev/html/examples-tests.html
/usr/share/doc/libusb-dev/html/examples-other.html
/usr/share/doc/libusb-dev/copyright
/usr/share/doc/libusb-dev/changelog.Debian.gz
/usr/share/doc-base
/usr/share/doc-base/libusb-dev
/usr/share/man
/usr/share/man/man1
/usr/share/man/man1/libusb-config.1.gz
/usr/lib/libusb.so
But when I change #include <libusb.h>
to #include <usb.h>
and try to compile this code:
#include <stdio.h>
#include <stdlib.h>
#include <usb.h>
int main(){
usb_init();
printf("Hello world!\n");
return 0;
}
I get the following error:
undefined reference to 'usb_init'
Seems like libusb-dev
is missing.
Or
Execute dpkg -L libusb-dev
to list all the files in libusb-dev
package to find out what is appropriate include file name and it's location. Most likely you will end up changing your include to:
#include <usb.h>
Also, it is not enough just to add a header to the program - you need to show what library should be linked to use those symbols that are declared in the header. Add following to your compiler options:
-lusb