使用开源libFTDI编译程序

时间:2016-10-01 12:45:40

标签: linux compilation armv7 ftdi

我使用安装了Advanced Tomato的华硕路由器(基于ARMv7 proc) 作为我的ARMv7开发人员平台。我安装编译器(gcc - 5.4.0-1) 加上来自OpenWRT Linux的依赖项和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

那么问题是什么?

1 个答案:

答案 0 :(得分:0)

我不知道为什么(可能是bug)但是对于从OpenWRT repo中获取的编译器,必须在/opt/lib中使用库。因此,只需复制libftdi1.so.2.3.0文件并将其链接到libftdi1.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

从我的观点来看 - 主题已关闭