当前位置: 技术问答>linux和unix
usb-modeswitch交叉编译
来源: 互联网 发布时间:2017-01-26
本文导语: 现在移植一个3G的无线网卡,USB接口,利用usb-modeswitch将其转换为串口模式 版本 检查编译器 arm-arm2007q3 usb-modeswitch-1.1.2 libusb-0.1.12 检查编译libusb-0.1.12时,配置如下 ./configure --build=i686-...
现在移植一个3G的无线网卡,USB接口,利用usb-modeswitch将其转换为串口模式
版本
检查编译器 arm-arm2007q3
usb-modeswitch-1.1.2
libusb-0.1.12
检查编译libusb-0.1.12时,配置如下
./configure --build=i686-linux --host=arm-linux --prefix=/opt/libusb-0.1.12/install
make 没有问题
但是在编译usb-modeswitch-1.1.2时就出现了如下问题
[root@localhost usb-modeswitch-1.1.2]# make
/usr/local/arm/arm-2007q3/bin/arm-none-linux-gnueabi-gcc -o usb_modeswitch usb_modeswitch.c -Wall -l usb -I /opt/libusb-0.1.12/install/include -L /opt/libusb-0.1.12/install/lib
/usr/local/arm/arm-2007q3/bin/../lib/gcc/arm-none-linux-gnueabi/4.2.1/../../../../arm-none-linux-gnueabi/bin/ld: skipping incompatible /opt/libusb-0.1.12/install/lib/libusb.so when searching for -lusb
/usr/local/arm/arm-2007q3/bin/../lib/gcc/arm-none-linux-gnueabi/4.2.1/../../../../arm-none-linux-gnueabi/bin/ld: skipping incompatible /opt/libusb-0.1.12/install/lib/libusb.a when searching for -lusb
/usr/local/arm/arm-2007q3/bin/../lib/gcc/arm-none-linux-gnueabi/4.2.1/../../../../arm-none-linux-gnueabi/bin/ld: cannot find -lusb
collect2: ld returned 1 exit status
make: *** [usb_modeswitch] 错误 1
很奇怪,以前在6446上移植时,用的arm_v5t_le这个版本的编译器就不会出这样的问题,而且这次用这个也试了,同样没问题。
望高人能解答
版本
检查编译器 arm-arm2007q3
usb-modeswitch-1.1.2
libusb-0.1.12
检查编译libusb-0.1.12时,配置如下
./configure --build=i686-linux --host=arm-linux --prefix=/opt/libusb-0.1.12/install
make 没有问题
但是在编译usb-modeswitch-1.1.2时就出现了如下问题
[root@localhost usb-modeswitch-1.1.2]# make
/usr/local/arm/arm-2007q3/bin/arm-none-linux-gnueabi-gcc -o usb_modeswitch usb_modeswitch.c -Wall -l usb -I /opt/libusb-0.1.12/install/include -L /opt/libusb-0.1.12/install/lib
/usr/local/arm/arm-2007q3/bin/../lib/gcc/arm-none-linux-gnueabi/4.2.1/../../../../arm-none-linux-gnueabi/bin/ld: skipping incompatible /opt/libusb-0.1.12/install/lib/libusb.so when searching for -lusb
/usr/local/arm/arm-2007q3/bin/../lib/gcc/arm-none-linux-gnueabi/4.2.1/../../../../arm-none-linux-gnueabi/bin/ld: skipping incompatible /opt/libusb-0.1.12/install/lib/libusb.a when searching for -lusb
/usr/local/arm/arm-2007q3/bin/../lib/gcc/arm-none-linux-gnueabi/4.2.1/../../../../arm-none-linux-gnueabi/bin/ld: cannot find -lusb
collect2: ld returned 1 exit status
make: *** [usb_modeswitch] 错误 1
很奇怪,以前在6446上移植时,用的arm_v5t_le这个版本的编译器就不会出这样的问题,而且这次用这个也试了,同样没问题。
望高人能解答
|
猜测是eabi的原因
要么都用eabi,要么都不是
要么都用eabi,要么都不是
|
1、手动创建初步看起来没什么问题。你把网络设备变成字符设备了?
2、给你个mdev的参考资料,你可以参考一下:
http://blog.csdn.net/yichi7758/archive/2009/03/13/3987634.aspx
2、给你个mdev的参考资料,你可以参考一下:
http://blog.csdn.net/yichi7758/archive/2009/03/13/3987634.aspx
|
cannot find -lusb
====================
很明显找不到 libusb 的路径。
你设置一下 LD_LIBRARY_PATH 就行了。
====================
很明显找不到 libusb 的路径。
你设置一下 LD_LIBRARY_PATH 就行了。
|
错误信息很明显了 lusb库不正确
工具链之间也会有差异,包含的库会有差别,可能你以前的工具链已经包含过lusb库了,而现在的工具链没有
而-I /opt/libusb-0.1.12/install/include -L /opt/libusb-0.1.12/install/lib, -I 和-L之后没有空格才对
你可以在编译usb-modeswitch-1.1.2时,设置环境量
CPPFLAGS=-I/opt/libusb-0.1.12/install/include LDFLAGS=-L/opt/libusb-0.1.12/install/lib
工具链之间也会有差异,包含的库会有差别,可能你以前的工具链已经包含过lusb库了,而现在的工具链没有
而-I /opt/libusb-0.1.12/install/include -L /opt/libusb-0.1.12/install/lib, -I 和-L之后没有空格才对
你可以在编译usb-modeswitch-1.1.2时,设置环境量
CPPFLAGS=-I/opt/libusb-0.1.12/install/include LDFLAGS=-L/opt/libusb-0.1.12/install/lib
|
因为你这次用的编译器是:arm-none-linux-gnueabi-gcc
|
1、你是怎么手动建立的。
2、试试用mdev -s看能不能自动建立节点
2、试试用mdev -s看能不能自动建立节点
您可能感兴趣的文章:
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。