我正在尝试将util配置为交叉编译,使用来自CodeSourcery的arm gnueabi。到目前为止,我唯一的问题是它找不到我编译的ncurses库。
如何将目录添加到ld搜索路径?我尝试过在我的LIBRARY_PATH和LD_LIBRARY_PATH变量中添加内容,但两者都没有。我知道我可以给gcc添加-L标志,它会添加到链接器路径中,但是有没有办法在全球范围内这样做,这样我就可以做到一次,而不必再担心它了?
这是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/我想在我的ld搜索路径中添加/arm/usr/lib和/arm/usr/local/lib。
如果您需要任何其他命令的输出,只需询问!
编辑:我刚刚发现了CFLAGS环境变量--所有配置脚本/makefile都遵守它吗?
谢谢!
发布于 2012-02-14 06:26:15
如果您编译的ncurses库将链接到ARM二进制文件,则交叉编译时不能使用LD_LIBRARY_PATH!LD_LIBRARY_PATH仅用于当前运行时,而编译器或链接器在构建应用程序时绝不会使用。
CFLAGS的使用依赖于Makefile的创建者。即使CFLAGS被定义为环境变量,也不会自动使用它们。只有像autoconf工具这样的工具才能从环境中提取它们并自动使用它们。在Makefiles中可以找到如下内容:
$(CC) $(CFLAGS) ....如果该片段存在,则Makefile将使用CFLAGS变量。LDFLAGS是用于链接时选项的更合适的环境变量。
https://stackoverflow.com/questions/9251740
复制相似问题