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=
-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进行处理,非常感谢!