交叉编译程序的万能命令
如果交叉编译工具链的前缀是arm-buildroot-linux-gnueabihf-,在交叉编译开源软件时如果里面有configure,万能命令如下
./configure --host=arm-linux --prefix=$PWD/tmp
make
make install
--host=arm-linux | 指定目标架构(即编译生成的程序将运行的架构)。这里表示 交叉编译,目标平台为 ARM。 |
--prefix=$PWD/tmp | 指定 安装路径。安装后的文件(如库、头文件等)将放在 $PWD/tmp 下。$PWD 是当前目录,等价于 /当前目录/tmp 。 |
为了知道我使用当前编译器时会遍历哪些头文件路径以及库文件路径时,可以用以下命令(这里使用的编译器为arm-linux-gnueabihf-gcc)
echo 'int main(){}' | arm-linux-gnueabihf-gcc -E -v
库文件路径:
LIBRARY_PATH=/home/book/100ask_imx6ull-qemu/ToolChain/gcc-linaro-6.2.1-2016.11-x86_64_arm-linux-gnueabihf/bin/../lib/gcc/arm-linux-gnueabihf/6.2.1/:/home/book/100ask_imx6ull-qemu/ToolChain/gcc-linaro-6.2.1-2016.11-x86_64_arm-linux-gnueabihf/bin/../lib/gcc/arm-linux-gnueabihf/:/home/book/100ask_imx6ull-qemu/ToolChain/gcc-linaro-6.2.1-2016.11-x86_64_arm-linux-gnueabihf/bin/../lib/gcc/:/home/book/100ask_imx6ull-qemu/ToolChain/gcc-linaro-6.2.1-2016.11-x86_64_arm-linux-gnueabihf/bin/../lib/gcc/arm-linux-gnueabihf/6.2.1/../../../../arm-linux-gnueabihf/lib/:/home/book/100ask_imx6ull-qemu/ToolChain/gcc-linaro-6.2.1-2016.11-x86_64_arm-linux-gnueabihf/bin/../arm-linux-gnueabihf/libc/lib/:/home/book/100ask_imx6ull-qemu/ToolChain/gcc-linaro-6.2.1-2016.11-x86_64_arm-linux-gnueabihf/bin/../arm-linux-gnueabihf/libc/usr/lib/
头文件路径:
#include "..." search starts here:
#include <...> search starts here:
/home/book/100ask_imx6ull-qemu/ToolChain/gcc-linaro-6.2.1-2016.11-x86_64_arm-linux-gnueabihf/bin/../lib/gcc/arm-linux-gnueabihf/6.2.1/include
/home/book/100ask_imx6ull-qemu/ToolChain/gcc-linaro-6.2.1-2016.11-x86_64_arm-linux-gnueabihf/bin/../lib/gcc/arm-linux-gnueabihf/6.2.1/include-fixed
/home/book/100ask_imx6ull-qemu/ToolChain/gcc-linaro-6.2.1-2016.11-x86_64_arm-linux-gnueabihf/bin/../lib/gcc/arm-linux-gnueabihf/6.2.1/../../../../arm-linux-gnueabihf/include
/home/book/100ask_imx6ull-qemu/ToolChain/gcc-linaro-6.2.1-2016.11-x86_64_arm-linux-gnueabihf/bin/../arm-linux-gnueabihf/libc/usr/include
后面遇到具体的程序时同上过程