我为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被黑客攻击才能实现?
答案 0 :(得分:1)
gcc采用-L选项,可以指定库路径。
如果你的代码有一个makefile,那里通常会有一行,你可以添加用户路径。