易截截图软件、单文件、免安装、纯绿色、仅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命令 档案目录管理

档案目录管理 ls
语法: ls [-alrtAFR] [name...]
说明: 显示指定工作目录下之内容(列出目前工作目录所含之档案及子目录)。   
参数:
  -a 显示所有档案及目录 (ls内定将档案名或目录名称开头为"."的视为隐藏档,不会列出)
  -l 除档案名称外,亦将档案型态、权限、拥有者、档案大小等资讯详细列出
  -r ......

linux 上电执行的第一条代码是在内存里吗?

摘自oldlinux:
上电执行的第一条代码是在内存里吗?
“访问的F000h : FFF0h是内存的地址还是存放bios的rom地址 ” 
  这个是由北桥内的一个寄存器设置的(具体的资料你可以去找一些芯片组的资料)。当北桥收到CPU外部的地址总线上的信号时,会根据这个寄存器内的值来决定是从内存里取内容还是把这个地 ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号