【发布时间】:2011-09-19 16:10:13
【问题描述】:
我在 Ubuntu Linux 中使用代码块。我想用库 libusb 编写程序。我在系统中有这个文件,但是 IDE 中的编译器找不到这个文件。我在这个文件中添加了“构建选项”,它没有帮助。这个问题的解决方法是什么?
#include <libusb.h>
更新:
dpkg -L libusb-dev 显示如下:
/.
/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
但是当我将#include <libusb.h> 更改为#include <usb.h> 并尝试编译这段代码时:
#include <stdio.h>
#include <stdlib.h>
#include <usb.h>
int main(){
usb_init();
printf("Hello world!\n");
return 0;
}
我收到以下错误:
undefined reference to 'usb_init'
【问题讨论】:
-
既然 Borland 与 Codeblocks 无关,而且 Borland C++ 编译器仅适用于 Win32,我认为应该从您的问题中删除“Borland”这个词?
-
感谢所有回复。我使用gcc 4.4.5,他将“找不到文件或目录”免费翻译成英文。我有操作系统 libusb-dev 数据包。
-
检查我更新的答案。我有一种直觉,你指定了错误的头文件名。
-
谢谢,在添加链接器链接到 lib 文件之前。当我添加 -lusb 程序时。谢谢大家!
-
我很高兴它成功了。请批准我的回答。我将使用您回答中的 cmets 更新您的问题。
标签: c++ c ubuntu codeblocks libusb