1

我正在尝试将 util-linux 配置为使用 CodeSourcery 中的 arm-none-linux-gnueabi 进行交叉编译。到目前为止,我唯一的问题是它找不到我编译的 ncurses 库。

如何将目录添加到 ld 搜索路径?我已经尝试添加到我的 LIBRARY_PATH 和 LD_LIBRARY_PATH 变量,但都没有。我知道我可以将 -L 标志添加到 gcc 并且它将添加到链接器路径,但是有没有办法在全局范围内执行此操作,以便我可以执行一次,而不必再担心它?

这是输出arm-none-linux-gnueabi-gcc -print-search-dirs | grep libraries | sed 's/:/\n/g'

libraries
 =/tools/bin/../lib/gcc/arm-none-linux-gnueabi/4.6.1/
/tools/bin/../lib/gcc/
/tools/bin/../lib/gcc/arm-none-linux-gnueabi/4.6.1/../../../../arm-none-linux-gnueabi/lib/arm-none-linux-gnueabi/4.6.1/
/tools/bin/../lib/gcc/arm-none-linux-gnueabi/4.6.1/../../../../arm-none-linux-gnueabi/lib/
/tools/bin/../arm-none-linux-gnueabi/libc/lib/arm-none-linux-gnueabi/4.6.1/
/tools/bin/../arm-none-linux-gnueabi/libc/lib/
/tools/bin/../arm-none-linux-gnueabi/libc/usr/lib/arm-none-linux-gnueabi/4.6.1/
/tools/bin/../arm-none-linux-gnueabi/libc/usr/lib/

我想将/arm/usr/liband添加/arm/usr/local/lib到我的 ld 搜索路径。

如果您需要任何其他命令的输出,请询问!

编辑:我刚刚发现了 CFLAGS 环境变量——所有配置脚本/生成文件都尊重它吗?

谢谢!

4

1 回答 1

2

如果您编译的 ncurses 库将链接到您正在交叉编译的 ARM 二进制文件,则不能使用 LD_LIBRARY_PATH!LD_LIBRARY_PATH 仅由当前运行时使用,编译器或链接器在构建应用程序时绝不使用。

CFLAGS 的使用取决于 Makefile 的创建者。CFLAGS 不会自动使用,即使它们被定义为环境变量。只有像 autoconf 工具这样的工具才能从环境中提取它们并自动使用它们。在 Makefiles 中找到类似的内容:

$(CC) $(CFLAGS) ....


如果此片段存在,则 Makefile 使用 CFLAGS 变量。LDFLAGS 是更适合用于链接时选项的环境变量。

于 2012-02-14T06:26:15.183 回答