【发布时间】:2016-10-01 12:45:40
【问题描述】:
我使用安装了 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
那么问题是什么?
【问题讨论】:
-
如果您不得不将 /opt/usr/local/lib/ 放入 runtime 搜索路径,为什么您不也将其作为链接时间传递搜索路径?确实,如果工具链实际上已为您运行它的环境正确配置,您会做得更好。
-
呸,错误的欺骗目标。哦,好吧,take your pick, there's only ~2300...
标签: linux compilation armv7 ftdi