交叉编译:在一个平台上,编译出能在另一个不同体系结构平台上运行的程序,例如在x86的平台上编译出能在arm板上运行的程序。
交叉编译的原因:目标平台的资源有限,运行速度慢,内存和磁盘也不足;目标平台的第一个编译器需要交叉编译获得;在目标平台上移植完整的linux编译所需支持包很麻烦。
交叉编译的详细解释http://t.csdn.cn/hDBRh
hello world 源码:
01 #include <stdio.h>
02
03 /* 执行命令: ./hello xxx
04 * argc = 2 argument count 参数数量
05 * argv[0] = ./hello argumen value 参数值
06 * argv[1] = xxx
07 */
08
09 int main(int argc, char **argv)
10 {
11 if (argc >= 2)
12 printf("Hello, %s!\n", argv[1]);
13 else
14 printf("Hello, world!\n");
15 return 0;
16 }
在源码存放的文件夹下执行如下代码进行编译
gcc -o hello hello.c
执行
./hello
显示 Hello, world!
./hello XXX
显示 Hello, xxx!
上面编译出来的程序在arm上无法运行 需要在配置好交叉编译环境后,使用交叉编译工具链进行编译,获得的程序才可以在arm上运行
arm-buildroot-linux-gnueabihf-gcc -o hello hello.c