




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、Linux培训讲座包括Ubuntu、RHEL 1.系统配置、makefile、教学内容、在Linux中选择开发语言Linux环境变量Java环境配置c环境配置开发环境选择IDE vs编辑器makefile、Linux开发语言选择、主流Linux 我们使用的语言: c Linux的母语c面向高效兼容c的对象语言的Java“跨平台设计好的oo语言”Python跨平台是取代传统脚本bash (shell )的最早的脚本语言,Linux的环境变化环境变量典型的环境变量PATH操作系统包括用于搜索文件的默认路径PWD当前工作目录、Linux环境变量和环境变量export命令的设置示例: export t
2、est=value/etc/prort 解压缩到指定的目录配置环境变量:三个Java _ home=/data/development/Java/path=$ Java _ home/bin 3360 $ pathclasspatth dt.jar 3360 $ class path测试hello world会在$PATH的开头添加新添加的JDK的bin目录,如果系统上安装了多个JDK版本,程序会优先搜索开头的JDK版本。 使用c环境配置和软件包管理器安装yum或apt-get。 yum : yuminstallgccc-capt-get : apt-getintallbuild-essent
3、ial不建议自己编译gcc/g,因为这太耗时,容易弄错测试环境: gcc v code 、开发环境选择IDE vs编辑器、eclipse CDT的安装方法下载eclipse for linux解压缩到指定位置,下载CDT,放置到eclipse目录中,建立eclipse环境连接、代码格式等测试环境japse c工程,开发环境选择IDE vs编辑器,可选编辑器: emacs vim gedit Kate我们主要以vim和gedit为主,makefile,回顾: C/C代码是如何编程预处理编译连接生成汇编器提出问题:一个项目依赖于很多源文件,编译很复杂,需要重新编译许多gcc/g编译器make工具m
4、akefile,makefile。 依赖关系定义最终应用程序中每个文件和源文件之间的关系。 在makefile中,这些规则表示target: file1 file2是冒号后面的空间、文件间的空间、makefile、 依赖关系的示例: myapp 3360 main.o2. o3. omain.o 3360 main.ca.h2. o 3360.ca.h3. o 3360通常只需要gcc -c 2.c,但必须指定头文件目录否则,将发生make错误。makefile、make命令的选项和参数kmake命令发生错误时,继续执行n,在make输出执行的操作步骤f中指定makefile的文件名、make
5、file。 简单的makefile myapp 3360 main.o2. o3. ogcc-omyappmain.o2. o3. omain.o 3360 main.ca.hgcc-cmain c.h gcc-c3. c make-f标记文件以上是myapp的开头,但make可以确定制作文件的正确顺序。 调用在“规则”部分中指定的命令创建适当的文件,并在运行时在屏幕上显示命令。 测试:修改源文件以确定makefile是否能够应对这种情况。makefile、makefile的注释makefile的注释以#开始,一直持续到该行的末尾,与C/C的行注释/相似。 makefile,出现问题:上面基本
6、上介绍了makefile的所有内容,但是实际的项目使用需要在不同的平台上交换编译器,存在项目目录结构变化等问题。 宏:定义: macro=value取消: macro=参照: $macro,makefile, 宏角色:设置编译器选项以删除编译中硬代码使用宏的makefile示例all 3360 myapp # whichcompilercc=gcc # whereareincludef 发行版选项。# cflags=-全球最新版本:主版本. o2. o3. o $ cc-I $包括版本. o2. o3. omain b.h $ cc-I $包括版本- c2. c3. o :3.cc makef
7、ff :列出当前目标所依赖的文件$3360比当前目标新的文件$3360当前目标的名称$:不包含当前依赖文件的名称$*:扩展名当前依赖文件的名称、makefile、多个目标clean清除不需要的目标文件Install,并将编译的目标置于指定的目录中。 makefile instdir=/usr /本地/bin # whereareincludefileskeptinclude=.# optionsfordevelopmentcflags=-g波浪标志=-全球最佳映射3360主. o2. o3. o $ cc-I $包括-最佳映射. o2. o3. omain b . cc-I包括- c3. c清
8、洁3360支持CP映射安装程序; CHMOD a x $INSTDIR/myapp; chmod og-w $INSTDIR/myapp; echo安装中$ instdir; else echo $INSTDIR does not exist . fi; makefile,注意事项: all只定义了名为myapp的目标。 如果在运行make时没有指定目标,则make的默认行为是创建第一个目标all,以-开始两个新的目标clean和安装rm命令,并忽略rm命令的执行结果clean命令make知道,在执行创建目标所需的附加命令之前,必须创建myapp。 用于创建install目标的规则由多个she
9、ll脚本命令组成。 因为make命令在执行规则时调用shell,而每个命令都调用shell,所以必须在上面每行代码的末尾加上反斜杠。 使所有shell脚本命令在逻辑上相同,并作为整体传递给一个shell执行。 此命令以开头,表示在make执行这些规则之前,命令本身不会显示在标准输出中。makefile、目标install依次执行多个命令,将目标安装到指定位置。 在此示例中,在执行shell命令时,make不会检测上一个命令是否成功。 如果需要检测上行命令的执行结果,请将这些命令发送到then cp myapp $INSTDIR; 中所述情节,对概念设计中的量体执行面积分析。 chmod og-w $INSTDIR/myapp; echo安装中$ instdir; else echo $INSTDIR does not exist . fi; makefile、makefile和子目录可以将构成静态库的几个文件与主文件分离,并保存在一个目录中。 有两种方法可以在make中完成这项任务。 makefile,方法1 :首先在子目录中创建第二个makefile。 其目的是编译该目录下的源文件,生成静态库,然后在上一个目录中创建生成的静态库copy在上位目录的makefile中包含第二个makefile : mylib.a :
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论