打印

arm-linux-gcc交叉编译器选项说明

[复制链接]
188|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
arm-linux-gcc



    arm-linux-gcc -o hello hello.c   可直接生成可执行文件 hello

    arm-linux-gcc -v -o hello hello.c  可以观看编译细节



> 总体选项



    -c:预处理,编译和汇编源文件,但不做连接,编译器根据源文件生成OBJ文件

    -S:编译后停止

    -E:预处理后停止

    -o file   :指定输出文件 file

    -v:显示编译细节



>警告选项



    -Wall



>调试选项



    -g



>优化选项



    -O、-O1

    -O2

    -O3

    -O0



>连接器选项



    object-file-name

        eg:gcc -o test main.o sub.o



    -I library :连接名为 library 的库文件



    -nostartfiles : 不连接系统标准启动文件,二标准库文件仍然正常使用



    -nostdlib : 不连接系统标准启动文件和标准库文件,只把指定的文件传递给连接器



    -static : 在支持动态连接的系统上阻止连接共享库



    -shared : 生成一个共享OBJ文件,它可以和其他OBJ文件连接产生可执行文件



    -Xlinker option : 把选项option传递给连接器



     -Wl ,option :  把选项option传递给连接器



    -u symbol : 使连接器认为取消了 symbol 的符号定义,从而连接库文件以取得定义



>目录选项



    -I dir    :在文件的搜索路径中加上dir路径



    -I-



    -L dir    :在-I 选项的搜索路径列表中添加 dir 目录



    -B prefix :指出在何处寻找可执行文件、库文件以及编译器自己的数据文件





gcc-linux-ld



    将多个目标文件、库文件连接成可执行文件



> -T 选项



    只用于连接 bootloader、内核等 “没有底层软件支持”的软件

    连接运行于操作系统之上的应用时,无需指定 -T选项



    -Ttext startaddr

    -Tdata startaddr

    -Tbss startaddr

        startaddr 表示代码段、数据段、bss段的起始地址



    arm-linux-ld -Ttext 0x0000000 -g led_on.o -o led_on_elf

        运行在 0x0000000 地址上







gcc-linux-objcopy



    复制一个目录文件的内容到另一个文件中;可进行格式转换





gcc-linux-objdump



    显示二进制文件信息,查看反汇编代码

使用特权

评论回复

相关帖子

发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

432

主题

439

帖子

0

粉丝