Pi 使用的是ARMV7架构的BCM2836, 下载交叉编译器 arm-linux-gnueabihf-gcc 即可.

本地环境: Ubuntu14 + x86_64

1. 下载编译器地址:

1). linaro开源组织有相关的交叉工具链下载,点击进入网页选择下载即可,地址:https://launchpad.net/linaro-toolchain-binaries/+download

2). 上述网址网速较慢, 总是下载失败. 找了国内的网址 http://pan.baidu.com/s/1pJ2rdkZ

2. 下载完后, 解压, 并将 gcc-linaro-arm-linux-gnueabihf-4.9-2014.07_linux/bin 目录设置到系统环境变量中.

gcc-linaro-arm-linux-gnueabihf-4.9-2014.07_linux/bin$ file arm-linux-gnueabihf-gcc-4.9.1
arm-linux-gnueabihf-gcc-4.9.1: ELF 32-bit LSB  executable, Intel 80386, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.15, stripped

这里下载的交叉编译器的是32位的, 确保你的系统支持32位程序的运行.

3. 准备测试代码 main.c:

#include <stdio.h>
int main()
{
    printf("hellow world!\n");
}

4. 编译

arm-linux-gnueabihf-gcc main.c -v

详细交叉编译选项为:COLLECT_GCC_OPTIONS='-v' '-march=armv7-a' '-mtune=cortex-a9' '-mfloat-abi=hard' '-mfpu=vfpv3-d16' '-mthumb' '-mtls-dialect=gnu'

编译结果:

file a.out
a.out: ELF 32-bit LSB  executable, ARM, EABI5 version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 3.1.1, BuildID[sha1]=3103ff5892a051b7e185e8ae88bf6cb997af7781, not stripped

5. 执行

上传到 pi 上, 执行结果如下:

pi@raspberrypi ~ $ ./a.out
hellow world!
pi@raspberrypi ~ $

最新文章

  1. (function($){...}) (jQuery)
  2. 【一周读书】All life is problem solving
  3. osx 文本编辑工具下载地址Sublime Text 3
  4. poj-1083-Moving Tables(hdu-1050)
  5. 编写一个python脚本功能-备份
  6. java 文件读和写(整理)
  7. ACdream 1068
  8. Eclipse编写代码时设置属于自己的注释
  9. 佳佳的Fibonacci
  10. iphone手机投屏在哪里 手机无线投屏电脑
  11. 信用评分卡Credit Scorecards (1-7)
  12. Ubuntu 16.04 Java8 安装
  13. Intellij IDEA 最新旗舰版注册激活破解(2018亲测,可用)
  14. PHP开发——数组
  15. 继承时,当父子类都具有相同的成员变量,默认情况下是直接调用子类的成员变量,当要调用父类的成员变量则需要使用super关键之
  16. GM Bosch Vetronix HP Tech 2 with CANDI
  17. 突然的明白--public static 类名 函数名()
  18. 【HDU】1693:Eat the Trees【插头DP】
  19. 线代: N阶行列式
  20. 有关平台支持的从经典部署模型到 Azure Resource Manager 的迁移的技术深入探讨

热门文章

  1. Mapreduce部署与第三方依赖包管理
  2. Oracle 中分组排序取值的问题
  3. Hbase 维护
  4. tomcat启动(三)Catalina分析-load方法分析
  5. mysql数据库数据监测
  6. Nodejs学习笔记(八)—Node.js + Express 实现上传文件功能(felixge/node-formidable)
  7. KafkaOffsetMonitor监控kafka
  8. iOS 微信支付SDK与微信友盟分享两者同时集成时,出现的问题与解决之路。
  9. Extjs报错处理
  10. api.openWin