易截截图软件、单文件、免安装、纯绿色、仅160KB

linux之gcc命令

      在Linux下进行C语言编程,必然要采用GNU GCC来编译C源代码生成可执行程序。Gcc指令的一般格式为:
Gcc [选项] 要编译的文件 [选项] [目标文件]。其中,目标文件可缺省,Gcc默认生成可执行的文件名为:编译文件.out
看一下经典入门程序"Hello World!"
# vi hello.c ,编辑如下:
#include <stdlib.h>
#include <stdio.h>
void main(void)
{
       printf("hello world!\r\n");
}
用gcc编译成执行程序。#gcc hello.c,该命令将hello.c直接生成最终二进制可执行程序a.out。./a.out就可以执行。
      这条命令隐含执行了(1)预处理、(2)汇编、(3)编译、(4)链接,形成最终的二进制可执行程序。现在我们就用GCC的命令选项来逐个剖析GCC过程。
1),预处理(Pre-processing)。在该阶段,编译器将C源代码中的包含的头文件如stdio.h编译进来,用户可以使用gcc的选项”-E”进行查看。用法:#gcc -E hello.c -o hello.i,作用:将hello.c预处理输出hello.i文件。通过vi hello.i可以看到预处理过程信息。
2),编译阶段(Compiling)。在这个阶段中,Gcc首先要检查代码的规范性、是否有语法错误等,以确定代码的实际要做的工作,在检查无误后,Gcc把代码翻译成汇编语言。用户可以使用”-S”选项来进行查看,生成汇编代码。
用法:[root]# gcc –S hello.i –o hello.s
3),汇编阶段(Assembling)。汇编阶段是把编译阶段生成的”.s”文件转成二进制目标代码。用法:[root]# gcc –c hello.s –o hello.o
4),链接阶段(Link)。用法:[root]# gcc hello.o –o hello.exe,作用:将编译输出文件hello.o链接成最终可执行文件hello.exe。
      在这个程序中并没有定义”printf”的函数实现,且在预编译中包含进的”stdio.h”中也只有该函数的声明,而没有定义函数的实现,那么,是在哪里实现”printf”函数的呢?最后的答案是:系统把这些函数实现都被做到名为libc.so.6的库文件中去了。可以用ldd命令查看动态库加载情况:[root]# ldd hello.exe。
       函数库一般分为静态库和动态库两种。静态库是指编译链接时,把库文件的代码全部加入到可执行文件中,因此生成的文件比较大,但在


相关文档:

实战Linux Bluetooth编程(三) HCI层编程

1. HCI层协议概述:
HCI提供一套统一的方法来访问Bluetooth底层。如图所示:
从图上可以看出,Host Controller Interface(HCI)  就是用来沟通Host和Module。Host通常就是PC, Module则是以各种物理连接形式(USB,serial,pc-card等)连接到PC上的bluetooth Dongle。
在Host这一端:application,SDP,L2cap等协议 ......

linux的platform驱动

 从Linux 2.6起引入了一套新的驱动管理和注册机制:Platform_device和Platform_driver。
Linux中大部分的设备驱动,都可以使用这套机制, 设备用Platform_device表示,驱动用Platform_driver进行注册。
 
Linux platform driver机制和传统的device driver 机制(通过driver_register函数进行注册)相比,一个十 ......

Linux virtual server【LVS】

1. Two methods to construct the cluster of servers
(1). DNS based load balancing cluster
DNS load balancing is probably the simplest method to build network
service cluster. It uses Domain Name System to distribute requests to
different servers through resolving the domain name to different IP
......

Linux中等待队列机制分析

 Linux中等待队列机制分析
 
什么是等待队列?
       在软件开发中任务经常由于某种条件没有得到满足而不得不进入睡眠状态,然后等待条件得到满足的时候再继续运行,进入运行状态。这种需求需要等待队列机制的支持。Linux中提供了等待队列的机制,该机制在内核中应用很广泛。 ......

Linux下的飞鸽简要设计框架


以下是我从别的blog上转载的, 关于Linux下的飞鸽简要设计框架, 之所以说是Linux下的, 因为代码是Linux下的. 但是, 设计框架将遵循windows版飞鸽传书的协议和框架.数据包格式:
版本号:包编号:用户名:机器名:命令字:附加信息
如  1:2067943:liu :d14:32:hello
以上是一个发送消息的数据包格式 ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号