我为 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/
我想补充
/usr/armv6j-hardfloat-linux-gnueabi/usr/local/lib/
给它。据我所知,交叉编译器会忽略 LIBRARY_PATH 并具有固定的搜索顺序。但是 - 有没有可能在构建时改变这个搜索顺序 - 即在创建跨工具链时?也许一些 ./configure 用于 gcc 的选项,或者环境变量呢?
我见过一些跨工具链,它们具有非标准(但仍然是固定的)库搜索顺序。它们是由 ./configure 选项或类似机制指定的,还是被 gcc 破解来实现的?