致命错误:libudev.h文件不存在

17

我在Ubuntu 12.04上使用g++ / gcc进行编译,这很“好”,但是我无法使用树莓派工具主程序进行交叉编译。

toolsmaster 
CC := /home/Desktop/Simple_Linux_Driver/tools-master/arm-bcm2708/arm-bcm2708-linux-gnueabi/bin/arm-bcm2708-linux-gnueabi-g++
GCC := /home/Desktop/Simple_Linux_Driver/tools-master/arm-bcm2708/arm-bcm2708-linux-gnueabi/bin/arm-bcm2708-linux-gnueabi-gcc

我已经安装了以下项目:

-sudo apt-get install libusb-1.0-0-dev
-sudo apt-get install libudev-dev

树莓派内核版本为3.2.27(我是否需要启用“how”,然后重新构建?)

2个回答

3

它工作了!!! 我需要进行交叉编译,并将 .h 和 .so 文件复制到树莓派交叉工具中。以下是我尝试过的内容:

如果我漏掉了任何内容,请告诉我。感谢您^^

下载 libusb 最新版本的 tar 文件。

版本为 1.0.8。

$ TOOLCHAIN=/opt/FriendlyArm/toolchain/4.4.3/arm-none-linux-gnueabi
$ PATH=$PATH:$TOOLCHAIN/bin
$ CC='arm-none-linux-gnueabi-gcc -march=armv4t -mtune=arm920t'
$ CROSS_COMPILE=arm-none-linux-gnueabi-
$ export CC CROSS_COMPILE
$ tar xfv libusb-1.0.8.tar
$ cd libusb-1.0.8
$ ./configure --host arm-linux
$ make
$ cd libusb
$ cp libusb.h $TOOLCHAIN/arm-none-linux-gnueabi/include/
$ cp libusb.h $TOOLCHAIN/arm-none-linux-gnueabi/sysroot/include/
$ cp .libs/libusb-1.0.so $TOOLCHAIN/arm-none-linux-gnueabi/lib/
$ cp .libs/libusb-1.0.so $TOOLCHAIN/arm-none-linux-gnueabi/sysroot/lib/

工具链已设置。 编写程序时: 添加#include引用库。 使用以下方式进行编译:
$arm-linux-g++ myprog.cpp -o myapp -lusb-1.0

注意:不要漏掉“-lusb-1.0”


0

如果你这样做,它会安装适用于x86的库。

上述库应该在树莓派交叉工具链中。如果不存在,则需要为arm架构进行交叉编译。然后,您必须按照以下命令导出它:

export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/路径到库

首先使用export命令导出工具。

export PATH=$PATH:/路径到工具链

在执行上述操作之前,请先尝试以下操作

例如,将其导出到每个终端中:

vi .bashrc

在文件末尾添加以下命令。

export PATH=/路径到工具链bin:$PATH

例如:export PATH=/opt/Arm_tool_chain/bin:$PATH


首先,您要编译什么?其次,您是在x86还是树莓派板上进行编译? - vinay hunachyal
我正在尝试编译从github获取的USB驱动程序代码(https://github.com/signal11/hidapi)。我使用x86来编译代码。 - WenJuan
你能分享一下你的Makefile吗?这样我就可以弄清楚你到底在尝试什么了。 - vinay hunachyal
我可以通过你的电子邮件发送吗?我已经尝试使用树莓派工具主机进行交叉编译libusb,它可以工作,但我还没有在libudev上尝试过。 - WenJuan
好的,请给我一点解释,您想要做什么。在上面的评论中,您说得不太清楚。这是我的邮箱:vinayhunachyal@gmail.com - vinay hunachyal

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接