- 博客(5)
- 资源 (3)
- 收藏
- 关注
原创 Linux编译选项&静态库和动态库
GCC编译器编译选项: -c 仅执行预处理、编译和汇编,生成可定位目标文件。 -S 仅执行预处理和编译,生成汇编文件。 -E 仅执行预处理,预处理结果输出至标准输出。 -ansi 关闭GNU C中和ANSI C不兼容的语法特征。 -Dmacro 相当于C语言中的#define macro,常见的是打开调试-DDEBUG和打开可重入标志-D_REENTRANT,编译内核模块-DMODULE
2012-06-13 23:16:18 1637
转载 extern linux用法详解
1 基本解释 extern可以置于变量或者函数前,以标示变量或者函数的定义在别的文件中,提示编译器遇到此变量和函数时在其他模块中寻找其定义。当然在本文件中也可以使用extern声明这些,这样可以提示编程人员理解这是个为外部引用的变量或者函数。 另外,extern也可用来进行链接指定。 2 问题:extern 变量 在一个源文件里定义了一个数组:char a[6]; 在另外
2012-06-13 23:11:23 700
原创 linux EXPORT_SYMBOL
内核符号表能够分为“私有”和“公共”。等闲所说的内核符号表指的是“公共内核符号表”。 我们懂得,驱动存在于内核空间,它的每一个函数每一个变量都会有对应的符号,这局部符号也能够称作内核符号,它们不导出的话就只能为切身所用,导出后就能够成为公用,对于导出的那局部的内核符号即便我们常说的内核符号表。insmod的时候并不是所有的函数都获得内核符号表去寻找对应的符号,因为每一个驱动在自己分配的空间里也会
2012-06-12 07:17:56 583
转载 makefile教程
概述 —— 什么是makefile?或许很多Winodws的程序员都不知道这个东西,因为那些Windows的IDE都 为你做了这个工作,但我觉得要作一个好的和 professional的程序员,makefile还是要懂 。这就好像现在有这么多的HTML的编辑器,但如果你想成为一个专业人士,你还是要了解 HTML的标识的含义。特别在Unix下的软件编译,你就不能不自己写makefile
2012-06-07 20:55:30 287
转载 C++-内存管理
C++内存管理详解l 内存分配方式在C++中,内存分成5个区,分别是堆、栈、自由存储区、全局/静态区和常量存储区.栈:存放函数参数以及局部变量,在出作用域时,将自动被释放.栈内存分配运算内置于处理器的指令集中,效率很高,但分配的内存容量有限.堆:new分配的内存块(包括数组,类实例等),需delete手动释放.如果未释放,在整个程序结束后,OS会帮你回收掉.自由存储区:malloc分配的内存块,需free手动释放.它和堆有些相似.全局/静态区:全局变量(global)和静态变量(stati
2011-03-25 17:03:00 242
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人