我为 ARM(具体来说是 Raspberry Pi)创建了一个交叉工具链。其库搜索顺序如下:
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/
Run Code Online (Sandbox Code Playgroud)
我想补充一点
/usr/armv6j-hardfloat-linux-gnueabi/usr/local/lib/
Run Code Online (Sandbox Code Playgroud)
到它。据我所知,交叉编译器忽略 LIBRARY_PATH 并具有固定的搜索顺序。但是 - 是否有可能在构建时(即创建跨工具链时)更改此搜索顺序?也许有一些 gcc 的 ./configure 选项,或者环境变量?
我见过一些跨工具链,它们具有非标准(但仍然固定)的库搜索顺序。它们是通过 ./configure 选项或类似机制指定的,还是 gcc 被黑客攻击来实现的?