c++ 编译器_工欲善其事,必先利其器!打造自己的C/C++编译器

一、 目前编译器的三种主流形式

做开发的,不论是阅读代码、编写程序总会涉及到编译器问题,我也经历过了TC、VC6、VC2010、CodeBlocks等等,使用过很多软件,最后慢慢的形成了自己的一套系统,希望对你也有帮助。

常见的C编译器主要的方式有以下三种:

1、基于文本编辑器改造的编译器

专业文本编辑器:

(1)Visual Studio Code

Visual Studio Code (简称 VS Code)是由微软研发的一款免费的、轻量级的Web集成开发环境,且开源的跨平台文本(代码)编辑器,能运行在Linux、Mac 、Windows系统上。在智能提示变量类型,函数定义,模块方面继承了visio studio的优秀传统,在断点调试上也有不错的表现。

用于简单级有点复杂,体积稍显大,用于轻量级还不是集成开发环境。

(2)Notepad++

Notepad++ 是一款非常有特色的编辑器,软件小巧高效,支持27种编程语言,通吃C,C++ ,Java ,C#, XML, HTML, PHP,JS 等,缺点对C语言来说,语法完成等功能还是稍显不足,文本编辑功能、定制化能力与 UltraEdit还有差距。

(3) UltraEdit

UltraEdit 是一套功能强大的文本编辑器,可以编辑文本、十六进制、ASCII 码,完全可以取代记事本(如果电脑配置足够强大),内建英文单字检查、C/C++语法高亮,语法自动完成,语法文件定制,可同时编辑多个文件,而且即使开启很大的文件速度也不会慢。

我们轻量级的编译器就是基于UltraEdit,利用他的强大功能,再加入编译功能,就完成了一个轻量级的强大编译器,能够支持各种语言和编译器!

(4)VIM

VIM广泛使用于UNIX或者LINUX系统中,他的最大特色是完全使用键盘命令进行编辑,对于喜欢命令行的人来说是非常强大的工具,对于习惯于Windows的操作方式来说很难适应。

(5)Emacs

Emacs和VIM类似,具有内置的宏功能以及强大的键盘命令,他能做的事情非常多,功能非常强大,能够集合整个开发环境并调试程序。Emacs支持对多种文字的文本编辑、跨平台,是深受Coder喜欢的一款编辑器。

(6)Sublime Text

它最初被设计为一个具有丰富扩展功能的Vim,Sublime Text具有漂亮的用户界面和强大的功能,支持多种编程语言的语法高亮、拥有优秀的代码自动完成功能。Sublime Text同样支持丰富的插件扩展。

对于习惯Windows的用户还是不习惯!对于一切只用键盘操作的用户来说是福音。

(8)EditPlus

EditPlus和notepad++类似,能够提供文本、HTML以及其他程序语言编辑的功能;界面也相当的简便快捷,支持多标签,可以轻松编辑多个文档。

我们也可以可用它做轻量化的编译器,虽然功能不如UltraEdit,但是胜在体积小巧和简单1

选择优秀的文本编辑器,在利用GCC、VC等编译器构成开发环境。主要是利用文本编辑器的代码自动完成、语法高亮、完善的编辑功能。因为通过工具添加编译功能,因此一般只能完成简单的编译功能,很难完成复杂的调试,多文件编译等高级功能。但是体积小,代码编写效率高,使用简便!

这个对于新手用到的功能不多,用来学习非常好用;老手已经不需要那些复杂的功能了,只要提高代码的编写效率,注重使用方便,也是非常得力的工具。

2、非商业化的轻量级编译器

一些非商业的公司一直在开发,功能也很不错,但是一般都是免费非商业化的,因此道路艰难坎,C比较经典的是Dev-C++,虽然没有VC功能繁多,但是对于学习C/C++已经具备了比较好的功能,具有完善的集成开发环境,调试功能等,文本编辑器不如专业文本编辑器好用,一般体积几百兆稍显大了点,但是好在集成开发安环境,该有的都有了!

3、重量级商业编译器

微软的VS系列,这个我们不需多说!

二、打造自己的专用经典C编译器(简易级)

文本编辑器选择UltraEdit,版本选择早期的32位版本(我用的是版本 21.30.0.1024),为什么不用最新的版本,这个版本支持XP到最新的win10,在32和64位系统上均能运行,兼容性非常好。当然你可以根据自己的情况选用合适的版本!

除了功能强大,还可以做成绿色的,可以移动,拷贝使用,非常方便!

1、配置环境变量

定制编译器的第一个重要步骤就是配置环境变量,通常有三种方式

(1)手工在Windows系统下添加环境变量

(2)通过批处理设置临时环境变量

vc6和VC2010等都使用这种方式,我们的编译器也使用的这种方式。

(3)自动智能方式

通过一个小程序,来检测环境和设置环境变量,好处是,编译器可以安装在任何目录,而且可以随时可以整体移动到其它目录,移动后执行以下变量设置程序既可。

环境变量主要设置三个目录:

bin: 编译器所在的目录

include: 头文件等包含文件目录

lib :库文件的目录

bin目录中vc6_sgb.bat文件内容:

@echo off set path=%path%;D:ueC06Binset INCLUDE=D:ueC06Includeset LIB=D:ueC06Lib

把上述内容复制到记事本内,保存成vc6_sgb.bat既可,然后放在bin文件夹内。

2、准备编译器文件

我们选用了VC6做编译器,我们也做了基于VC2010的,但是为简单起见,我们以VC6做说明,

首先我们给编译器文件建立一个文件夹C06,然后安装VC++6.0或者从其他机器上拷贝以下几个文件夹到C06内。

(1) bin文件夹

f83b36b6edf0459bc7683b6611ae6aed.png

图1:bin文件夹内文件

其中vc6_sgb.bat和clea.bat分别是环境变量设置和清楚文件功能的批处理,

(2) include 文件夹

(3)lib文件夹

/lib/kernel32.lib是从VC6.0中拷贝过来的,没有这个文件不能编译。

debde5c8941c54cc2c1029afb2c57754.png

图2:LIB汇总的文件

3、配置编译器

安装UltraEdit后,我们复制一份安装后的文件夹,存放在D:ue下,这是为了制造绿色版,你如果不想移动使用,可以安装后就不用管,直接配置既可。

打开UltraEdit,点击“高级”菜单,在弹出的下拉才当中选择“工具配置”,会弹出工具配置对话框,点击”命令”选项卡,设置如图3

(1)、编译配置

81dfb508cf22b564ec6bc967618b4c3e.png

图3:编译的命令选项卡配置

1)“命令”选项卡

“菜单项名称”下的文本框填写:编译

“命令行”下文本框填写:D:ueC06binvc6_sgb.bat & cl %n%e

“工作目录”下文本框填写:%p

“工具栏位图标”下文本框填写:D:ueicobuid.png

这个是给编译弄一个图标,直接选择图标的位置就可以了。

2)“选项”选项卡

0ab22340648de98faca421d97dd1d218.png

图4:编译的’选项’选项卡设置

3)“输出”选项卡

d922ea30d02423d009f0b38cf872fde0.png

图5:编译的输出选项卡设置

(2)、运行配置

1)“命令”选项卡

586264fa2ec8ac693777f798799d83e0.png

图6:运行的命令选项卡配置

“菜单项名称”下的文本框填写:运行

“命令行”下文本框填写:%n

“工作目录”下文本框填写:%p

“工具栏位图标”下文本框填写:D:ueicoun.jpg

这个是给运行弄一个图标,直接选择图标的位置就可以了。

2)“选项”选项卡

0ab22340648de98faca421d97dd1d218.png

图7:运行的’选项’选项卡设置

3)“输出”选项卡

d922ea30d02423d009f0b38cf872fde0.png

图8:运行的输出选项卡配置

(3)、清除配置

1)“命令”选项卡

e175fd8796eb2e855be06ee29fdb72a3.png

图9:“清除”的“命令”选项卡设置

“菜单项名称”下的文本框填写:清除

“命令行”下文本框填写:D:ueC06binclea.bat

“工作目录”下文本框填写:%p

“工具栏位图标”下文本框填写:D:ueicoclean.jpg

这个是给清除弄一个图标,直接选择图标的位置就可以了。

clea.bat文件内容如下:

@echo off del *.objdel *.exedel *.optdel *.ncbdel *.plgdel *.dswdel *.dsprd/s/q Debug

把杉树内容复制到记事本内,保存为clea.bat既可,然后放入bin目录内

2)“选项”选项卡

b76c3b3099180734a66c7c00b7a76527.png

图10:“清除”的“选项“”设置

3)“输出”选项卡

d922ea30d02423d009f0b38cf872fde0.png

图11:"清除"的“输出”选项卡设置

为了使用方便,通过“定制工具栏”把这三个工具按钮添加到工具栏上,添加后如图12

26faa4d8a4c32ddff540c0c2a3c5bf9d.png

图12:添加到工具栏上后的样子

红圈内,左边是编译,中间是运行,右边的是清除

4、测试编译

点击:“编译”按钮,显示13显示编译成功。

8439d69f4908d2de09f780f245e50718.png

图13:编译成功

点击:“运行”按钮,显示14显示运行的结果,程序运行正常

de1b554c760464fdcac330b0a56885a8.png

图14:测试运行功能

除了可以作为C/C++编译器,还可以配置为Java,Keil C编编译器,其它功能还在完善和怎增加中。

三、打造自己的专用经典C编译器(轻量级)

我们选用Dev-C++作为轻量级的C/C++编译器,可以到官方下载最新版本,安装的时候是英语,安装完后可以选择简体中文语言。其它不再赘述。

三、打造自己的专用经典C编译器(重量级)

在上一篇文章“核心技术-调试”中我们已经给出了用VC2010编程的例子,再次不再赘述,请参看以前的文章。

一般的代码编、阅读和C学习,直接使用轻量级的编译器,遇到复杂程序或者调试程序使用轻量级或者重量级编译器。

喜欢的朋友可以直接联系我所要配置好的编译器!

本文属于原创首发,版权归作者所有,请勿用于商业用途!

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值