我正在尝试将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/lib
和/arm/usr/local/lib
添加到我的ld搜索路径中。
如果您需要任何其他命令的输出,只需询问即可!
编辑:我刚刚发现了CFLAGS环境变量——所有配置脚本/生成文件都遵守它吗?
谢谢!
如果您编译的ncurses库将链接到正在交叉编译的ARM二进制文件,则不能使用LD_library_PATH!LD_LIBRARY_PATH仅由当前运行时使用,编译器或链接器在构建应用程序时不会使用它
CFLAGS的使用取决于Makefile的创建者。即使CFLAGS被定义为环境变量,它们也不会自动使用。只有像autoconf工具这样的工具才能从环境中获取它们并自动使用它们。在Makefiles中可以找到以下内容:
$(CC) $(CFLAGS) ....
如果存在此片段,则Makefile将使用CFLAGS变量。LDFLAGS是用于链路时间选项的更合适的环境变量。