zoukankan      html  css  js  c++  java
  • Linux 编译与交叉编译

    在Linux环境中,所处平台不同,执行文件也就不同,同一执行文件不能在不同平台下使用

    如在Ubnutu下 是用gcc编译一个.c文件

    gcc main.c -o main.out

    -o 可以指定输出文件名

    但是这个mian.out文件只能在Ubnutu等其他X86构架的平台上运行,如果我们要在ARM上运行,就需要使用交叉编译器。

    交叉编译器需要去根据系统构架去官网下载。

    使用交叉编译器的编译一个可执行裸机文件:

    流程

    ①、使用arm-linux-gnueabihf-gcc,将.c .s文件变为.o

    arm-linux-gnueabihf-gcc -g -c main.c -o main.o

    ②、将所有的.o文件连接为elf格式的可执行文件。

    arm-linux-gnueabihf-ld -Ttext 0X87800000 main.o -o main.elf

    其中0x87800000为代码起始执行地址。

    ③、将elf文件转为bin文件。

    arm-linux-gnueabihf-objcopy -O binary -S -g main.elf main.bin

    也可以将elf文件转为汇编,反汇编。

    arm-linux-gnueabihf-objdump -D main.elf > main.dis

    再使用imxdownload烧写到存储目录

    ./imxdownload main.bin /dev/sdd
  • 相关阅读:
    将数据导入PostGIS
    图层管理
    CentIOS PHP 扩展库
    js 笔记 数组(对象)
    JSP 中的 Request 和 Response 对象
    ubuntu 安装 LAMP
    html 学习笔记
    Struts Ajax Json
    Servlet 笔记
    PHP+MYSQL 出现乱码的解决方法
  • 原文地址:https://www.cnblogs.com/puchi/p/11803947.html
Copyright © 2011-2022 走看看