04-Linux环境下程序开发基础.PPT

  1. 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
04-Linux环境下程序开发基础

* 创建并使用静态库 创建静态库 例程:头文件 liberr.h 实现文件liberr.c 1. 把代码编译成目标文件 gcc –c liberr.c–o liberr.o 2.使用ar工具创建静态库 ar rcs liberr.a liberr.o 使用静态库 用户程序errtest.c 需要 #include “liberr.h” 使用-static选项链接liberr.a静态库 gcc errtest.c –o errtest –static –L. –lerr 注:如果没有指定-static选项,gcc将自动动态连接创建errtest $file errtest 检查生成的文件 * 创建并使用共享库 创建共享库 例程:头文件 liberr.h 实现文件liberr.c 1. 把代码编译成目标文件 gcc –fPIC –c liberr.c–o liberr.o 2.链接库: gcc –shared –Wl,-soname,liberr.so –o liberr.so.1.0.0 liberr.o –lc 3. 建立必要的符号链接 ln –s liberr.so.1.0.0 liberr.so.1 ln –s liberr.so.1.0.0 liberr.so 使用共享库 gcc –g errtest.c –o errtest –L. Lerr LD_LIBRARY_PATH=$(pwd) ./errtest * 谢谢! * * * LINUX 环境下程序开发基础 曙光用户培训课程系列 课程时间:1.5小时 更新日期:2008年3月 * Linux环境下程序编译 Linux环境下 程序编译 * Linux与C Linux与C是天然的结合,从它们的诞生开始就有密切的联系:Linux的前身Unix在用C语言改写之后才为世界所广泛接受;而C语言也是在Unix编写、传播的过程中发展和流行起来的 Linux平台为C语言提供的编译工具是gcc。Gcc除了处理一般的C语言程序,还支持C++、Objective C等一些语言。曙光4000A提供了PGI C/C++ compiler— pgcc/pgCC Linux系统与其他系统类似,C语言程序的运行过程分为三步: 编写源代码 用编译工具编译连接,生成可执行文件 运行该可执行文件 * 一个简单的例子—hello.c 用vi编写源文件: #include stdio.h void main() { printf(“hello world.\n”); } 用gcc编译 gcc hello.c 运行 a.out * GCC简介 gcc(GNU C Compiler)是GNU推出的功能强大、性能优越的多平台编译器,是GNU的代表作品之一。 gcc编译器能将C、C++语言源程序、汇程式化序和目标程序编译、连接成可执行文件,如果没有给出可执行文件的名字,gcc将生成一个名为a.out的文件。 在Linux系统中,可执行文件没有统一的后缀,系统从文件的属性来区分可执行文件和不可执行文件。而gcc则通过后缀来区别输入文件的类别,下面我们来介绍gcc常用的一些后缀。 .c为后缀的文件,C语言源代码文件 .a为后缀的文件,是由目标文件构成的档案库文件 .C,.cc或.cxx 为后缀的文件,是C++源代码文件 .h为后缀的文件,是程序所包含的头文件 .o为后缀的文件,是编译后的目标文件 gcc最基本的用法是∶gcc [options] [filenames] 其中options就是编译器所需要的参数,filenames给出相关的文件名称 * GCC常用编译参数 -c:只编译,不连接成为可执行文件,编译器只是由输入的.c等源代码文件生成.o为后缀的目标文件,通常用于编译不包含主程序的子程序文件。 -o output_filename:确定输出文件的名称为output_filename,同时这个名称不能和源文件同名。如果不给出这个选项,gcc就给出预设的可执行文件a.out。 -g:产生符号调试工具(GNU的gdb)所必要的符号资讯,要想对源代码进行调试,我们就必须加入这个选项。 -O:对程序进行优化编译、连接,采用这个选项,整个源代码会在编译、连接过程中进行优化处理,这样产生的可执行文件的执行效率可以提高,但是,编译、连接的速度就相应地要慢一些。 -O2:比-O更好的优化编译、连接,当然整个编译、连接过程会更慢。 * GCC常用编译参数 -Idirname:将dirname所指出的目录加入到程序头文件目录列表中,是在预编译过程中使用的参数。C程序中的头文件包含两种情况: A)#include stdio.h B)#inc

文档评论(0)

youbika + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档