Gcc & Makefile
win9zz
Life is brief, and then you die, you know?
展开
-
GCC选项 –I,-l,-L
-I:指定第一个寻找头文件的目录-L:指定第一个寻找库文件的目录-l:表示在库文件目录中寻找指定的动态库文件例:gcc –o hello hello.c –I /home/hello/include –L /home/hello/lib –lworld/home/hello/include 作为第一个头文件的寻找目录。头文件寻找顺序:/home/hello/原创 2017-02-09 18:16:06 · 1156 阅读 · 0 评论 -
cc编译命令选项
多数UNIX平台都通过CC调用它们的C编译程序.除标准和CC以外,LINUX和FREEBSD还支持gcc.基本的编译命令有以下几种: -c 编译产生对象文件(*.obj)而不链接成可执行文件,当编译几个独立的模块,而待以后由链接程序把它们链接在一起时,就可以使用这个选项,如: $cc -c hello.c ===> hello.o原创 2017-04-16 23:27:07 · 2556 阅读 · 0 评论 -
"undefined reference to" 问题解决方法
最近在Linux下编程发现一个诡异的现象,就是在链接一个静态库的时候总是报错,类似下面这样的错误:(.text+0x13): undefined reference to `func' 关于undefined reference这样的问题,大家其实经常会遇到,在此,我以详细地示例给出常见错误的各种原因以及解决方法,希望对初学者有所帮助。1. 链接时缺失了相关目标文件(转载 2017-04-27 17:47:41 · 1658 阅读 · 0 评论 -
arm交叉编译器gnueabi、none-eabi、arm-eabi、gnueabihf、gnueabi区别
命名规则交叉编译工具链的命名规则为:arch [-vendor] [-os] [-(gnu)eabi]arch - 体系架构,如ARM,MIPSvendor - 工具链提供商os - 目标操作系统eabi - 嵌入式应用二进制接口(Embedded Application Binary Interface)根据对操作系统的支持与否,ARM GCC可分为支持和不支持操作系统,转载 2017-08-29 15:55:14 · 1372 阅读 · 0 评论 -
arm-linux-ld命令 ld链接脚本
引入我们对每个c或者汇编文件进行单独编译,但是不去连接,生成很多.o 的文件,这些.o文件首先是分散的,我们首先要考虑的如何组合起来;其次,这些.o文件存在相互调用的关系;再者,我们最后生成的bin文件是要在硬件中运行的,每一部分放在什么地址都要有仔细的说明。我觉得在写makefile的时候,最为重要的就是ld的理解,下面说说我的经验: 首先,要确定我们的程序用没有用到标准的c库,或者一些系统的转载 2017-12-24 21:06:15 · 3419 阅读 · 0 评论 -
BSS段及其他
BSS的引入C语言中包括局部变量和全局变量。局部变量存储位置在栈上(不包含静态局部变量),全局变量(和静态全局变量)存放在数据段。全局变量在内存中只有一份,局部变量(非静态)可以是多份。 BSS全称Block Started by Symbol,用来存放没有初始值或初始值为0的全局变量(静态局部变量)。BSS段没有内容,所以它在文件中也不占据空间,程序运行时初始化。 命令原创 2018-01-12 22:13:53 · 1692 阅读 · 0 评论 -
__attribute__((section(".x")))及引申
关键字attribute可用于为函数或数据声明属性值,这样可以让编译程序优化处理。比如内核里面经常能看见的section:#define __exception __attribute__((section(".exception.text")))具有该属性的函数,汇编代码将会放置到.exception.text段中,而不是.text段中。 实践:把test放到指定原创 2018-02-05 04:38:27 · 9373 阅读 · 4 评论 -
arm-linux-objcopy
一、概述:arm-linux-objcopy被用来复制一个目标文件的内容到另一个文件中.此选项可以进行格式的转换.在实际编程的,用的最多的就是将ELF格式的可执行文件转换为二进制文件.如:Arm-linux-objcopy –o binary –S elf_file bin_file 二、常用选项:1.input-file、outfile输入输出文件.如转载 2018-01-12 18:59:46 · 1600 阅读 · 0 评论