我使用安装了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
那么问题是什么?
答案 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
从我的观点来看 - 主题已关闭