随笔分类 - linux
摘要:一.gcc 在编译时如何去寻找所需要的头文件:1.所以header file的搜寻会从-I开始2.然后找gcc的环境变量 C_INCLUDE_PATH,CPLUS_INCLUDE_PATH,OBJC_INCLUDE_PATH3.再找内定目录/usr/include/usr/local/include/usr/lib/gcc-lib/i386-linux/2.95.2/include/usr/lib/gcc-lib/i386-linux/2.95.2/http://www.cnblogs.com/http://www.cnblogs.com/include/g++-3/usr/lib/gcc-l
阅读全文
摘要:第一步:下载内核源码 例:linux-3.6.2.tar.bz2第二步:tar -jxvf linux-3.6.2.tar.bz2 -C /usr/src/kernels //将内核源码文件解压至 /usr/src/kernels第三步:make mrproper //保持内核干净第四步:make menuconfig //挑选内核功能,比较复杂,详细可参看《鸟哥的linux私房菜P756》第五步:make cleanmake bzImage //编译内核 make modules //再编译模块第六步:make modules_install //安装模块第七步:cp /usr/src/ke
阅读全文
摘要:第一步:启动BIOS(在内存中,非易失),纯硬件动作。第二步:利用BIOS载入可启动设备的MBR的boot loader(即是grub,spfdisk),boot loader认识该操作系统的文件系统第三步:利用boot loader从硬盘中加载内核(系统安装在硬盘上,bootloader 认识硬盘系统,因此它可以加载硬盘的数据)第四步:内核开始加载各种模块.注意如果硬盘的驱动程序没有被编译进内核,而是编译成模块。就会有问题。因为内核如果没有驱动模块的支持,它就不认得设备,就无法读取数据,即无法取得模块。解决方式:额外创建一个可执行文件,该文件一般放在/boot/initrd中,boot lo
阅读全文
摘要:写makefile需要考虑的方面: 1.目标和依赖关系:hash.o:de_hash.c de_hash.h common.h //目标是hash.o,依赖于文件de_hash.c de_hash.h common.h,当这三个文件有变化时将重新生成目标 需要考虑的问题:makefile如何找到依赖文件? 设置VPATH=./:../include 从当前文件和../include中找依赖文件 2.生成目标的规则(编译)gcc -c de_hash.c //编译de_hash.c文件 需要考虑的问题:如果de_hase.c中用到了头文件,gcc如何找到头文件? 指定 -I ./ -I ....
阅读全文
摘要:TOP_BUILDDIR=$(shell pwd)SUBDIRS=libddbg libparam diskmodel memsmodel ssdmodel srcall: $(MAKE) -C libddbg # $(MAKE)==make, $(MAKE) -C libparam #Change to directory dir before reading the makefiles or doing anything else. $(MAKE) -C diskmodel $(MAKE) -C memsmodel $(MAKE) -C ssdmodel $(MAKE) -C src $(
阅读全文
摘要:gcc and g++分别是gnu的c & c++编译器 gcc/g++在执行编译工作的时候,总共需要4步 1.预处理,生成.i的文件 2.将预处理后的文件不转换成汇编语言,生成文件.s 3.有汇编变为目标代码(机器代码)生成.o的文件 4.连接目标代码,生成可执行程序 [参数详解] -c 只激活预处理,编译,和汇编,也就是他只把程序做成obj文件 例子用法: gcc -c hello.c 他将生成.o的obj文件 -S 只激活预处理和编译,就是指把文件编译成为汇编代码。 例子用法 gcc -S hello.c 他将生成.s的汇编代码,你可以用文本编辑器察看 -...
阅读全文
摘要:fedora12编译内核正在看LDD3,为了搭建环境,需要自己编译内核,也就是搭建自己系统的内核源代码树.参考很多网上的文章,以及源代码树里的README文件,所后发现一个从没出现过的问题,最后自己解决了,积累了些经验,真是好不高兴.现在把过程记录下来,一来以供遇到同样问题的朋友参考,二来自己理顺一下,好记在脑子里. 建议,如果自己是第一次编译内核,那多参考一下网上人家写的经验,毕竟每个人的编译过程或多或少有些不一样,或多或少有些会出现问题.博众家所长,才能在出现问题时更有针对地去google.1:获取内核源代码.两种方式:到内核源代码主页www.kernel.org去下载社区主线版本,或者到
阅读全文
摘要:http://www.blogjava.net/fjzag/articles/317773.html
阅读全文
摘要:gethostaddr#include <stdio.h>#include <net/if.h>#include <sys/types.h>#include <sys/socket.h>#include <netinet/in.h>#include <arpa/inet.h>#include <sys/ioctl.h>#include <string.h>int main(void){ int fd; char buf[100]; struct ifreq ifr; struct sockaddr_
阅读全文

浙公网安备 33010602011771号