免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 5267 | 回复: 4
打印 上一主题 下一主题

[应用] armlinux usb_modeswitch交叉编译libusb找不到问题 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2013-01-31 13:23 |只看该作者 |倒序浏览
问题现象如下:
[root@localhost usb-modeswitch-1.2.5]# make all
arm-linux-gcc -o usb_modeswitch usb_modeswitch.c -Wall -I /home/admin/libusb-compat-0.1.3/install/include/ -L /home/admin/libusb-compat-0.1.3/install/lib/ -l usb
/usr/local/arm/4.3.2/bin/../lib/gcc/arm-none-linux-gnueabi/4.3.2/../../../../arm-none-linux-gnueabi/bin/ld: warning: libusb-1.0.so.0, needed by /home/admin/libusb-compat-0.1.3/install/lib//libusb.so, not found (try using -rpath or -rpath-link)
/home/admin/libusb-compat-0.1.3/install/lib//libusb.so: undefined reference to `libusb_clear_halt'
/home/admin/libusb-compat-0.1.3/install/lib//libusb.so: undefined reference to `libusb_get_device_address'
/home/admin/libusb-compat-0.1.3/install/lib//libusb.so: undefined reference to `libusb_close'
/home/admin/libusb-compat-0.1.3/install/lib//libusb.so: undefined reference to `libusb_unref_device'


但是我看我的库文件目录是有这个文件的:
[root@localhost usb-modeswitch-1.2.5]# ls /home/admin/libusb-compat-0.1.3/
install
[root@localhost usb-modeswitch-1.2.5]# ls /home/admin/libusb-compat-0.1.3/install/lib
libusb-0.1.so.4  libusb-0.1.so.4.4.4  libusb-1.0.so  libusb-1.0.so.0  libusb.a  libusb.la  libusb.so  pkgconfig
[root@localhost usb-modeswitch-1.2.5]#

请问下,这个怎么解决?

论坛徽章:
0
2 [报告]
发表于 2013-01-31 14:45 |只看该作者
本帖最后由 txgc_wm 于 2013-01-31 14:48 编辑

如果按照你以上所述的信息“-l usb”应该是会出错的,更改成如下:
arm-linux-gcc -o usb_modeswitch usb_modeswitch.c -Wall -I /home/admin/libusb-compat-0.1.3/install/include/ -L /home/admin/libusb-compat-0.1.3/install/lib/ -lusb

把你的Makefile贴出来看看,或许大伙更容易知道一些东西。

论坛徽章:
0
3 [报告]
发表于 2013-01-31 14:55 |只看该作者
makefile是usb_modeswitch 自带的一个,我改了一下 include 和lib库目录

PROG        = usb_modeswitch
VERS        = 1.2.5
CC          = arm-linux-gcc
INCLUDEDIR = /home/admin/libusb-compat-0.1.3/install/include/
LIBDIR = /home/admin/libusb-compat-0.1.3/install/lib/
CFLAGS      += -Wall
LIBS        = -l usb
RM          = /bin/rm -f
OBJS        = usb_modeswitch.c
PREFIX      = $(DESTDIR)/usr
ETCDIR      = $(DESTDIR)/etc
UDEVDIR     = $(DESTDIR)/lib/udev
SBINDIR     = $(PREFIX)/sbin
MANDIR      = $(PREFIX)/share/man/man1
VPATH                = jimtcl

.PHONY:    clean install uninstall

all: $(PROG)

shared: $(PROG) dispatcher-dynamic

static: $(PROG) dispatcher-static

$(PROG): $(OBJS) usb_modeswitch.h
        $(CC) -o $(PROG) $(OBJS) $(CFLAGS) -I $(INCLUDEDIR) -L $(LIBDIR) $(LIBS) $(LDFLAGS)

论坛徽章:
0
4 [报告]
发表于 2013-01-31 14:56 |只看该作者
上面就改动了如下:

增加:
INCLUDEDIR = /home/admin/libusb-compat-0.1.3/install/include/
LIBDIR = /home/admin/libusb-compat-0.1.3/install/lib/

然后在
$(CC) -o $(PROG) $(OBJS) $(CFLAGS) -I $(INCLUDEDIR) -L $(LIBDIR) $(LIBS) $(LDFLAGS)
增加那两个目录的路径

论坛徽章:
0
5 [报告]
发表于 2013-01-31 15:20 |只看该作者
txgc_wm 发表于 2013-01-31 14:45
如果按照你以上所述的信息“-l usb”应该是会出错的,更改成如下:
arm-linux-gcc -o usb_modeswitch usb_ ...


-l usb 改成 -lusb没用。。

我把lib加到arm-linux-gcc的库目录就ok了...
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP