第五节 UNIX下的C语言开发环境.pptVIP

  • 1
  • 0
  • 约 33页
  • 2017-06-03 发布于湖北
  • 举报
3.1 LINUX下C语言编程概述 3.3 Gcc编译器 # 2 hello.c 2 int main() { printf(Hello! This is our embedded world!\n); return 0; } 由此可见,Gcc确实进行了预处理,它把“stdio.h”的内容插入到hello.i文件中。 Gcc编译器 Gcc编译器 头文件 头文件是用来提供常量的定义和系统和函数调用的声明,这些头文件通常放在/usr/include和其子目录中。根据不同的Linux版本,头文件可能放在/usr/include/sys和/usr/include/linux. #include stdio.h 库函数 库函数是一些预先编译好的函数的集合,这些函数可以有很好的重用性。通常来讲,它们包含有相关的函数集合来完成一项常用任务。典型的库函数有屏幕处理函数 (curses和ncurses库)和数据库访问函数(dbm库)。 标准系统函数通常存放在/lib和/usr/lib中。C编译器需要被告知搜索哪个库,否则缺省情况下只搜索标准库。 传统静态库 .a Examples are /usr/lib/libc.a and /usr/X11/lib/libX11.a for the standard C library and the X11 library 共享库 .so On a typical Linux system, the shared version of the standard math library is /usr/lib/libm.so 2. make工程管理器 2.1 为什么要使用make? 工作量问题:对于拥有多个(上百个)源文件的软件项目,只需编写一次编译过程,而不需要在每次源文件修改后重复输入众多的文件名和编译命令进行编译; 效率问题:make能够根据文件的时间戳自动发现更新过的源文件,并通过读入Makefile文件来对更新的源文件进行编译而对其它文件只进行链接操作。 * 2. make命令 2.2 Makefile的格式 Makefile是make读入的唯一配置文件,Makefile文件通常包含如下内容: 需要由make创建的目标体(target),通常是目标文件或可执行文件; 要创建的目标体所依赖的文件(dependency_file); 创建每个目标体时需要运行的命令(commmand)。 Makefile格式: target: dependency_file command command之前必须有个“tab” * 4. 链接特殊函数库 /*filename is temp.c */ # include stdio.h int main(int argc,char *argv) { double value; value=log(argc); printf(Value:%f \n,value); } 用命令:gcc –o temp temp.c 编译时出错。修改命令: gcc –o temp temp.c –lm 这里指明编译时与数学库libm.a相链接,则可正确编译。 假设有程序temp.c如下: Unix Programming Unix operating system Unix operating system 第四章 UNIX下的C语言开发环境 6.1 程序设计环境 学习程序设计从程序语言开始,但还应了解程序执行和程序与外界的交互问题。 1.理想态的程序运行环境 用户程序直接控制和使用各种设备,完成各种操作。 针对一个简单程序: main() { int c; while ( ( c=getchar()) != EOF ) putchar(c); } 认为执行过程为: 在单用户单任务环境中基本符合。 2. 多任务环境下程序执行 多任务中每一时刻都会有多个用户程序提出访问请求,因此会有: 如此混乱的情况,程序将无法运行。 为使多道环境中的程序正确执行,需要OS管理。 用户程序需要系统核心区程序的管理,达到各自任务的执行。 6.2 基于系统支持的程序设计 1. 建立系统编程的思想 理解多道环境程序执行状况,转换用户程序是执行主体的认识。 了解OS可提供的服务及服务方式。 充分利用OS提供服务功能解决实际问题。 尽量使编写的程序最大限度的满足系统平台的支持能力。 1. gcc 与 gdb 1.1 UNIX和C语言 C?是一种在?UNIX?操作系统的早期就被广泛使用的通用编程语言,它最早是由贝尔实验室的?Dennis?Ritchie

文档评论(0)

1亿VIP精品文档

相关文档