编译器GCC编译 gcc-o hello.o hello.c 交叉编译器编译 arm-linux-gnueabihf-gcc-o hello hello.c编译过程预处理编译汇编链接-E预处理-S汇编-c编译-i-L链接-o file指定输出文件 hello.c-hello.i hello.i-hello.s hello.s-hello.o hello.o-hello(a.out)gcc-E hello.c-o hello.i gcc-S hello.i gcc-c hello.s gcc hello.o头文件包含#include head.h //预处理器搜索系统预设目录 #include head.h //预处理器搜索目标文件目录然后再搜索系统预设目录。链接库文件gcc hello.c libFOO.a //链接静态库 gcc hello.c libFOO.so //链接动态库 gcc hello.c -L /home/vmuser/hello //-L 指定库文件路径 gcc hello.c -L /home/vmuser/hello -lFOO //-L 指定库文件路径 -l指定库文件编译器用于在本机上编译可在本机运行的应用gcc-arm-linux-gnueabihfgcc-arm-linux-gnueabihf 是一个针对 ARM 架构 Linux 系统的交叉编译工具链它包括了 C、C、Objective-C 和 Fortran 编译器以及一些辅助工具用于将源代码编译成可在 ARM 架构的 Linux 系统上运行的二进制程序。arm架构电脑或开发板下载安装编译sudo apt install gcc-arm-linux-gnueabihf arm-linux-gnueabihf-gcc hello.c -o hello交叉编译器用于在本机上编译可在其他架构机器运行的应用gcc-linaro-7.5.0-2019.12-x86_64_arm-linux-gnueabihfgcc-linaro-7.5.0-2019.12-x86_64_arm-linux-gnueabihf 是一个工具链的名称用于交叉编译 ARM 架构的软件。让我为你逐个解释这个名称中的各部分 gcc-linaro-7.5.0-2019.12: 这是 GNU Compiler Collection (GCC) 的一个版本。 GCC 是一个开源的编译器集合用于编译多种编程语言包括 C、C 和其他语言。7.5.0-2019.12 表示 GCC 的版本号和发布日期。 x86_64: 这表示目标平台的体系结构即 64 位 x86 架构。x86_64 是当前主流的 PC 和服务器体系结构之一。 aarch64-elf: 这是用于 ARM 64 位体系结构 (AArch64) 的裸机编程不依赖操作系统的工具链标识符。 aarch64-linux-gnu: 这是用于 AArch64 架构上运行 Linux 操作系统的工具链标识符。 aarch64_be-elf: 这是用于大端模式的 AArch64 体系结构的裸机编程的工具链标识符。 aarch64_be-linux-gnu: 这是用于大端模式的 AArch64 架构上运行 Linux 操作系统的工具链标识符。 arm-eabi: 这是用于 ARM 架构的裸机编程的工具链标识符。 arm-linux-gnueabi: 这是用于 ARM 架构上运行 Linux 操作系统的软浮点支持的工具链标识符。 arm-linux-gnueabihf: 这是用于 ARM 架构上运行 Linux 操作系统的硬浮点支持的工具链标识符。 armeb-eabi: 这是用于大端模式的 ARM 架构的裸机编程的工具链标识符。 armeb-linux-gnueabi: 这是用于大端模式的 ARM 架构上运行 Linux 操作系统的软浮点支持的工具链标识符。 armeb-linux-gnueabihf: 这是用于大端模式的 ARM 架构上运行 Linux 操作系统的硬浮点支持的工具链标识符。 armv8l-linux-gnueabihf: 这是指 ARMv8 架构下带有 Linux 操作系统且使用硬浮点的工具链标识符。 具体来说arm 表示 ARM 架构linux 表示 Linux 操作系统gnueabihf 则表示使用了 GNU 工具链和 EABI嵌入式应用二进制接口。x86_64架构电脑下载编译下载链接https://releases.linaro.org/components/toolchain/binaries/7.5-2019.12/arm-linux-gnueabihf/ 解压gcc-linaro-7.5.0-2019.12-x86_64_arm-linux-gnueabihf.tar 编译hello.c 生成可执行文件配置环境变量加载环境变量查看环境变量交叉编译软件zbar-0.10.tar.bz21 下载软件zbar-0.10.tar.bz2 2 解压软件tar –xvf zbar-0.10.tar.bz2 3 创建zbar-0.10/output文件夹 4 配置软件./configure --prefix$PWD/output/ --enable-shared --enable-static --disable-video --without-python --without-gtk --without-qt --without-imagemagick CFLAGS --hostarm-linux-gnueabihf 5 编译软件make 6 安装软件make install ./configure --prefix安装路径 --build编译平台 --host运行平台 --target目标平台 [各种编译参数]交叉编译软件libiconv-1.15.tar.gz1 下载软件libiconv-1.15.tar.gz 2 解压软件tar –xvf libiconv-1.15.tar.gz 3 创建libiconv-1.15/output文件夹 4 配置软件./configure --prefix$PWD/output CCaarch64-linux-gcc --hostaarch64-linux --enable-shared --enable-static 5 编译软件make 6 安装软件make install ./configure CCC交叉编译器 CPPC交叉编译器 --prefix安装路径 --build编译平台 --host运行平台 --target目标平台 [各种编译参数]链接库文件-lforlinxubuntu:~/program/c/i2c$ /home/forlinx/OK3568-linux-source/buildroot/output/OK3568/host/bin/aarch64-linux-gcc i2c.c -o i2cwrite -li2c