开发工具

1、Eclipse

Eclipse 是一个开放源代码的、基于Java的可扩展开发平台。虽然大多数用户很乐于将 Eclipse 当作 Java集成开发环境(IDE)来使用,但 Eclipse 还包括插件开发环境(Plug-in Development Environment,PDE),虽然Eclipse 是使用Java语言开发的,但它的用途并不限于 Java 语言;例如,支持诸如C/C++、COBOL、PHP、Android等编程语言的插件已经可用,Eclipse 框架还可用来作为与软件开发无关的他应用程序类型的基础,比如内容管理系统。

2、LightTable

3、Sublime Text

4、Brackets

Brackets 是一个免费、开源且跨平台的 HTML/CSS/JavaScript 前端 WEB 集成开发环境 (IDE工具)。支持 Windows、Linux 以及 OS X 平台。Brackets 的特点是简约、优雅、快捷!它没有很多的视图或者面板,也没太多花哨的功能,它的核心目标是减少在开发过程中那些效率低下的重复性工作,例如浏览器刷新,修改元素的样式,搜索功能等等。

5、Emacs

二、除gcc外常用编译器及其特点

1、Visual C++

Visual C++是微软公司推出的开发环境。是目前最流行的 Windows 平台应用程序开发环境。目前已经开发到Visual Studio 2017。Visual Studio 可以用来创建 Windows 平台下的 Windows 应用程序和 络应用程序,也可以用来创建 络服务、智能设备应用程序和 Office 插件,目前还可开发安卓平台应用及IOS平台应用。

2、Borland C++

BorlandC++BuilderCompiler是一个BC编译器。它是用来优化BC开发系统的工具。它包括最后版本的ANSI/ISO C++语言的支持,包括RTL,C++的STL框架结构支持。

3、Gnu C++

Gnu是类UNIX系统下编写C++首先的编译器。其特点是可移植性好,可以在广泛的平台上使用它,是跨平台嵌入式系统开发的首选。

4、Intel C++

IntelC++Compiler(简称icc或icl)是美国Intel公司开发的C/C++编译器,适用于Linux、MicrosoftWindows和MacOSX操作系统。

5、Clang C++

Clang是一个C语言、C++、Objective-C、Objective-C++语言的轻量级编译器。源代码发布于BSD协议下。

三、 为什么调试的时候需要编译选项中添加 -gbsp;调研readelf命令。

1、加选项-g是为了能够调试,不加可以运行,但不能调试。加上-g选项以后,gcc在编译是会做以下额外的操作:

(1)创建符 表,符 表包含了程序中使用的变量名称的列表。

(2)关闭所有的优化机制,以便程序执行过程中严格按照原来的C代码进行。

2、readelf

(1)功能

用于显示elf格式文件信息

(3)elf文件分类

可重定位文件、可执行文件、共享目标文件

(2)elf文件作用

elf文件参与程序的连接(建立一个程序)和程序的执行(运行一个程序)

a)如果用于编译和链接(可重定位文件),则编译器和链接器将把elf文件看作是节头表描述的节的集合,程序头表可选。 

b)如果用于加载执行(可执行文件),则加载器则将把elf文件看作是程序头表描述的段的集合,一个段可能包含多个节,节头表可选。 

c)如果是共享文件,则两者都含有。 

(4)elf文件头描述的信息

系统相关,类型相关,加载相关,链接相关

(5)readelf指令

-a 

-all 显示全部信息,等价于 -h -l -S -s -r -d -V -A -I

-h 

-file-header 显示elf文件开始的文件头信息

-l 

-program-headers  

-segments 显示程序头(段头)信息(如果有的话)

-S 

-section-headers  

-sections 显示节头信息(如果有的话)

-g 

-section-groups 显示节组信息(如果有的话)

-t 

-section-details 显示节的详细信息(-S的)

-s 

-syms        

-symbols 显示符 表段中的项(如果有的话)

-e 

-headers 显示全部头信息,等价于: -h -l -S

-n 

-notes 显示note段(内核注释)的信息

-r 

-relocs 显示可重定位段的信息

-u 

-unwind 显示unwind段信息

-d 

-dynamic 显示动态段的信息

-V 

-version-info 显示版本段的信息

-A 

-arch-specific 显示CPU构架信息

-D 

-use-dynamic 使用动态段中的符 表显示符 ,而不是使用符 段

-x  

-hex-dump= 以16进制方式显示指定段内内容,number指定段表中段的索引,或字符串指定文件中的段名

-w[liaprmfFsoR] or 

-debug-dump[=line,=info,=abbrev,=pubnames,=aranges,=macro,=frames,=frames-interp,=str,=loc,=Ranges] 

显示调试段中指定的内容

-I 

–histogram 显示符 的时候,显示bucket list长度的柱状图

-v 

-version 显示readelf的版本信息

-H 

-help 显示readelf所支持的命令行选项

-W 

-wide 宽行输出

@file 可以将选项集中到一个文件中,然后使用这个@file选项载入。 

四、实现一个进度条程序,通过makefile进行编译。

1、makefile

2、test.c 

3、运行结果 

五、Linux下软件安装的几种方式(源码安装, rpm安装, yum安装),理解rpm安装和yum安装的区别。

1、源码安装

(1)获取源码

将软件的源码下载至/usr/local/,并解压。

(2)查看INSTALL与README文件

解压后查看INSTALL与README文件,这两个文件中详细介绍了本软件的安装方法和注意事项。

(3)创建Makefile文件

执行configure命令,生成Makefile文件。

(4)编译

执行make clean;make命令将源码编译成二进制文件。 

注:make clean命令用来清除上一次编译生成的目标文件。这个步骤可有可无,但为了确保编译的成功,还是加上为好。防止由

软件中含有残留的目标文件导致编译失败。

(5)安装

执行make install命令将上一步编译好的二进制文件安装到指定的目录中去。

2、rpm安装

(1)找到相应的软件包,下载到本机目录; 

(2)打开所在目录;

(3)输入rpm -ivh RPM包的全路径文件名。

3、yum安装

(1)查找本地软件yum list 软件名

(2)没有就在软件仓库找yum search 软件名

(3)安装yum install 软件名

4、rpm与yum区别

(1)rpm:将二进制程序打包

(2)yum:基于rpm包进行管理

 

声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2018年9月12日
下一篇 2018年9月12日

相关推荐