我为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并具有固定的搜索顺序。
但是-是否有可能在构建时更改此搜索顺序-即在创建跨工具链时?也许是gcc的某些./configure选项,还是环境变量?
我看过一些跨工具链,它们具有非标准(但仍是固定的)库搜索顺序。它们是由./configure选项或类似机制指定的,还是被gcc破解了?
最佳答案
gcc带有-L选项,可以指定库路径。
如果您的代码中有一个makefile,则通常会在其中添加一行,可以向其中添加用户路径。