Path 如何将目录添加到ld搜索路径,以便交叉编译到ARM?

Path 如何将目录添加到ld搜索路径,以便交叉编译到ARM?,path,linker,cross-compiling,ld,codesourcery,Path,Linker,Cross Compiling,Ld,Codesourcery,我正试图使用CodeSourcery中的arm none linux gnueabi将util linux配置为交叉编译。到目前为止,我唯一的问题是它找不到我编译的ncurses库 如何将目录添加到ld搜索路径?我已经尝试添加到我的LIBRARY\u PATH和LD\u LIBRARY\u PATH变量,但都没有做任何事情。我知道我可以将-L标志添加到gcc中,它将添加到链接器路径中,但是是否有任何方法可以在全局范围内执行此操作,这样我就可以执行一次,而不必再次担心它 以下是arm none l

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

如何将目录添加到ld搜索路径?我已经尝试添加到我的LIBRARY\u PATH和LD\u LIBRARY\u 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的创建者。即使将CFLAG定义为环境变量,也不会自动使用CFLAG。只有像autoconf工具这样的工具才能从环境中提取并自动使用它们。在Makefiles中可以找到如下内容:

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


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

好的,设计良好的Makefiles应该尊重它,但我可能需要做一些修补来让其他人工作。谢谢你的回答!