上一页 1 2 3 4 5 6 7 ··· 9 下一页
摘要: GNU CC(简称为Gcc)是GNU项目中符合ANSI C标准的编译系统,能够编译用C、C++和Object C等语言编写的程序。Gcc不仅功能强大,而且可以编译如C、C++、Object C、Java、Fortran、Pascal、Modula-3和Ada等多种语言,而且Gcc又是一个交叉平台编译器,它能够在当前CPU平台上为多种不同体系结构的硬件平台开发软件,因此尤其适合在嵌入式领域的开发编译。本章中的示例,除非特别注明,否则均采用Gcc版本为4.0.0。GCC入门基础表3.6 Gcc所支持后缀名解释后 缀 名所对应的语言后 缀 名所对应的语言.cC原始程序.s/.S汇编语言原始程序.C/ 阅读全文
posted @ 2013-07-12 15:36 woainilsr 阅读(12330) 评论(0) 推荐(0)
摘要: 一、为VMware虚拟机添加硬盘1. 首先在VMware虚拟机的VM->Setting子菜单中为虚拟机添加一块15G大小的SCSI类型的硬盘(注意:如果原来为IDE硬盘,SCSI类型的硬盘可能添加不成功,则可以添加IDE类型的硬盘)。2. 下面是为VMware虚拟机添加额外硬盘完整的命令:[root@localhost GemOcean]# fdiskUsage: fdisk [-l] [-b SSZ] [-u] deviceE.g.: fdisk /dev/hda (for the first IDE disk)or: fdisk /dev/sdc (for the third SCS 阅读全文
posted @ 2013-07-11 11:06 woainilsr 阅读(1313) 评论(0) 推荐(0)
摘要: Linux有自己一套完整的启动体系,抓住了Linux启动的脉络,Linux的启动过程将不再神秘。阅读之前建议先看一下附图。本文中假设inittab中设置的init tree为:/etc/rc.d/rc0.d/etc/rc.d/rc1.d/etc/rc.d/rc2.d/etc/rc.d/rc3.d/etc/rc.d/rc4.d/etc/rc.d/rc5.d/etc/rc.d/rc6.d/etc/rc.d/init.d1. 关于Linux的启动init是所有进程之父init读取/etc/inittab,执行rc.sysinit脚本(注意文件名是不一定的,有些unix甚至会将语句直接写在initta 阅读全文
posted @ 2013-07-11 10:59 woainilsr 阅读(2646) 评论(0) 推荐(0)
摘要: 概述 ——什么是makefile?或许很多Winodws的程序员都不知道这个东西,因为那些Windows的IDE都为你做了这个工作,但我觉得要作一个好的和 professional的程序员,makefile还是要懂。这就好像现在有这么多的HTML的编辑器,但如果你想成为一个专业人士,你还是要了解 HTML的标识的含义。特别在Unix下的软件编译,你就不能不自己写makefile了,会不会写makefile,从一个侧面说明了一个人是否具备完 成大型工程的能力。因为,makefile关系到了整个工程的编译规则。一个工程中的源文件不计数,其按类型、功能、模块分别放在若干个目录中,makefile定义 阅读全文
posted @ 2013-07-10 22:39 woainilsr 阅读(4971) 评论(0) 推荐(1)
摘要: 在Linux中利用源码包安装软件最重要的就是要仔细阅读安装包当中的README INSTALL两个说明文件,这两个文件会清楚的告诉你如何可以正确的完成这个软件的安装! 我们都知道源码包安装分为这么几个阶段, 1、 Tar:解压这个源码软件包。 2、 Cd:进入到这个源码包。 3、 ./configure:“configure”会在你的系统上测试存在的特性(或者bug!)然后来建立Makef... 阅读全文
posted @ 2013-07-10 22:32 woainilsr 阅读(511) 评论(0) 推荐(0)
摘要: ★概要: 这片文档从程序员的角度讨论了linux的ELF二进制格式。介绍了一些ELF执行 文件在运行控制的技术。展示了如何使用动态连接器和如何动态装载ELF。 我们也演示了如何在LINUX使用GNU C/C++编译器和一些其他工具来创建共享的 C/C++库。 ★1前言 最初,UNIX系统实验室(USL)开发和发布了Executable an... 阅读全文
posted @ 2013-07-10 22:24 woainilsr 阅读(764) 评论(0) 推荐(0)
摘要: Linux支持动态连接库,不仅节省了磁盘、内存空间,而且可以提高程序运行效率[1]。不过引入动态连接库也可能会带来很多问题,例如动态连接库的调试[4]、升级更新[5]和潜在的安全威胁[6][7]。这里主要讨论符号的动态链接过程,即程序在执行过程中,对其中包含的一些未确定地址的符号进行重定位的过程[3][8]。 本篇主要参考资料[3]和[8],前者侧重实践,后者侧重原理,把两者结合起来就方便理解程序的动态链接过程了。另外,动态连接库的创建、使用以及调用动态连接库的部分参考了资料[1][2]。 下面先来看看几个基本概念,接着就介绍动态连接库的创建、隐式和显示调用,最后介绍符号的动... 阅读全文
posted @ 2013-07-10 22:18 woainilsr 阅读(5579) 评论(0) 推荐(0)
摘要: 我们通常把一些公用函数制作成函数库,供其它程序使用。函数库分为静态库和动态库两种。静态库在程序编译时会被连接到目标代码中,程序运行时将不再需要该静态库。动态库在程序编译时并不会被连接到目标代码中,而是在程序运行是才被载入,因此在程序运行时还需要动态库存在。本文主要通过举例来说明在Linux中如何创建静态库和动态库,以及使用它们。 在创建函数库前,我们先来准备举例用的源程序,并将函数库的源程序编译成.o文件。第1步:编辑得到举例的程序--hello.h、hello.c和main.c;hello.c(见程序2)是函数库的源程序,其中包含公用函数hello,该函数将在屏幕上输出"Hello 阅读全文
posted @ 2013-07-10 22:04 woainilsr 阅读(992) 评论(0) 推荐(2)
摘要: 今天要用到静态库和动态库,于是写了几个例子来巩固一下基础。hello1.c ———————————————————— #include void print1(int i) { int j; for(j=0;jvoid print2(char *arr) { char c; int i=0; while((c=arr[i++])!='\0') { printf("%d****%c\n",i,c); } }hello.c ____________________________________________________ void print1(int); 阅读全文
posted @ 2013-07-10 21:47 woainilsr 阅读(31081) 评论(2) 推荐(1)
摘要: 中间有很长一段时间没有更新udhcp源码详解的博客,主要是源码里的函数太多,不知道要不要一个一个讲下去,要知道讲DHCP的实现理论的话一篇博文也就可以大致的讲完,但实现的源码却要关心很多的问题,比如说,理论上说从IP地址池取到一个空闲的IP,就这么一句,在源码的体现也是一大段。算啦,讲多少算多少吧,进入主题! struct dhcpMessage报文里uint8_t options[308]字段,在整个DHCP过程中是报文的一个很重要的字段,博文的系列(二)有讲解该字段的数据组织方式,CLV(Code + Len + Value),现在来讲解下怎么把选项信息添加进该字段,以及怎么从该字段取到相 阅读全文
posted @ 2013-07-09 22:45 woainilsr 阅读(10484) 评论(1) 推荐(0)
上一页 1 2 3 4 5 6 7 ··· 9 下一页