繁体   English   中英

使用开源libFTDI编译程序

[英]Compiling program with Open Source libFTDI

我将安装有Advanced Tomato的华硕路由器(基于ARMv7 proc)用作我的ARMv7开发人员平台。 我从OpenWRT Linux存储库安装了编译器(gcc-5.4.0-1)以及依赖项和libFTDI(libftdi1- 1.3-1)。 OpenWRT不提供libftdi-dev,因此我将ftdi.h文件从libFTDI下载页面复制到了/ opt / include。 我尝试编译直接来自libFTDI示例的程序。 编译器命令为:

gcc -v -Wl,-rpath=/opt/usr/local/lib -Wl,--dynamic-linker=/opt/lib/ld-linux.so.3 -L/opt/lib -O2 -pipe -march=armv7-a -mtune=cortex-a9-fno-caller-saves -mfloat-abi=soft -l ftdi1 d.c -o d

但是编译失败是因为:

/opt/bin/ld: cannot find -lftdi1

但是有/opt/usr/local/lib/libftdi1.so链接到libftdi1.so.2

我的LD_LIBRARY_PATH如下所示:

/lib:/usr/lib:/usr/local/lib:/opt/lib:/opt/usr/lib:/opt/include:/opt/usr/local/lib:/opt/usr/include

那么问题是什么呢?

我不知道为什么(可能是错误),但是对于从OpenWRT回购中获取的编译器,必须在/opt/lib需要库。 因此,只需复制libftdi1.so.2.3.0文件并将其链接到libftdi1.solibftdi1.so解决问题。 这意味着它没有正确使用LD_LIBRARY_PATH变量。 最终,编译命令如下所示:

gcc -v -Wl,-rpath=/opt/usr/local/lib -Wl,--dynamic-linker=/opt/lib/ld-linux.so.3 -L/opt/lib -O2 -pipe -march=armv7-a -mtune=cortex-a9 -fno-caller-saves -mfloat-abi=soft -l ftdi1 arco.c -o arco

从我的角度来看-主题已关闭

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM