配置交叉编译器以使用自定义库搜索路径

标签 c gcc arm

我为 ARM(具体来说是树莓派)创建了一个跨工具链。它的库搜索顺序如下:

armv6j-hardfloat-linux-gnueabi-gcc -print-search-dirs | grep libraries | sed "s/:/\n/g"

libraries
 =/usr/lib/gcc/armv6j-hardfloat-linux-gnueabi/4.7.2/
/usr/lib/gcc/armv6j-hardfloat-linux-gnueabi/4.7.2/../../../../armv6j-hardfloat-linux-gnueabi/lib/armv6j-hardfloat-linux-gnueabi/4.7.2/
/usr/lib/gcc/armv6j-hardfloat-linux-gnueabi/4.7.2/../../../../armv6j-hardfloat-linux-gnueabi/lib/
/usr/armv6j-hardfloat-linux-gnueabi/lib/armv6j-hardfloat-linux-gnueabi/4.7.2/
/usr/armv6j-hardfloat-linux-gnueabi/lib/
/usr/armv6j-hardfloat-linux-gnueabi/usr/lib/armv6j-hardfloat-linux-gnueabi/4.7.2/
/usr/armv6j-hardfloat-linux-gnueabi/usr/lib/

我想补充
/usr/armv6j-hardfloat-linux-gnueabi/usr/local/lib/

到它。
据我所知,交叉编译器会忽略 LIBRARY_PATH 并具有固定的搜索顺序。
但是 - 是否有可能在构建时更改此搜索顺序 - 即在创建跨工具链时?也许是 gcc 的一些 ./configure 选项,或者环境变量?

我见过一些跨工具链,它们具有非标准(但仍然固定)的库搜索顺序。它们是由 ./configure 选项或类似机制指定的,还是 gcc 被黑客入侵以实现这一目标?

最佳答案

gcc 采用 -L 选项,可以指定库路径。

如果你的代码有一个 makefile,那里通常会有一行你可以添加用户路径。

关于配置交叉编译器以使用自定义库搜索路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15291985/

相关文章:

c - 如何使用 C 代码将 linux 命令的结果复制到字符串中?

C 中带重音的字符到不带重音的字符

c - __atomic_exchange_n 上的神秘 "value computed is not used"警告

c++ - make clean 结果没有具有特定 makefile 名称的目标

c - 在 gcc 内联汇编程序 (ARM) 中使用数组

c - 在这种情况下矢量化是否有利可图?

c - 为什么递归中的全局变量比局部变量使用更多的内存?

linux - 在不使用 yum 的情况下在 AWS EC2 上安装 gcc?

c - 如何编译交叉编译器arm-linux-eabi-gcc?

c++ - ARM:如何获取当前上下文