1.2.2 编辑器的选择和使用
编译器已经有了,我们需要使用什么工具来编写操作系统代码呢?
其实,只要自己觉得合适,无论是使用简单的(诸如记事本之类的)工具还是复杂的(诸如进行程序开发的专用IDE),都不会有问题,每个人心中应该都有自己最理想的编辑工具。在程序的开发过程中,我们只需要打开一款编辑器,将程序源代码敲进去,然后将这些内容保存成源文件,那么剩下的工作就是使用编译器对这些代码进行编译。
接下来,让我们通过Windows下的“记事本”这一工具来演示一下在Cygwin环境中编写代码的一般方法,其他代码编辑器的使用与该方法类似。
首先请打开文本编辑器,向里面输入一个空的main函数,如图1-11所示。
图1-11 使用编辑器编写代码
接下来我们尝试对这段代码进行编译。将这些内容保存成文件,取名为“test.c”。在Cygwin的安装目录下,有一个“home”文件夹,进入这个文件夹,可以看到以用户名命名的一个文件夹,该文件夹代表Cygwin用户的家目录。所有个人私有的文件和数据存放到这个目录中是比较合适的。
例如,某个人将Cygwin安装到了C盘根目录,同时他又是以Administrator用户登录的话,那么这个文件夹就应该是C:\Cygwin\home\Administrator。
保存完成后,运行Cygwin,并在弹出的命令行中输入“ls”这条命令,可以看到test.c文件出现在该目录下,如图1-12所示。
图1-12 在Cygwin命令行运行“ls”命令
紧接着就在这个命令行下,运行编译工具,将“test.c”文件编译成可执行程序,命令如下。
命令1-6
arm-elf-gcc -nostdlib test.c
最终在该目录下,会出现一个名为“a.out”的文件,这个文件正是由GCC编译test.c文件后生成的。这就表示我们已经使用编辑器编写了代码,并用编译器成功编译了第一个程序。
对GCC比较熟悉的读者可能会觉得命令1-6这种编译方法比较奇怪。如果您使用的是我们提供的专用编译器,那么“-nostdlib”参数是必需的。它表示编译时不去链接标准函数库。相关参数的具体含义,我们会在接下来的章节中详细阐述。
如果是Linux用户,那么程序的编写和编译过程会更简单些。因为在Linux下,存在有一些基于命令行的文本编辑器,如vi。使用这样的一些编辑器,程序的编写、代码的保存和编译等过程都可以在命令行下实现,这样,开发效率会较高。
如果一些Linux初学者觉得vi较难掌握,也可以尝试使用nano。nano也是一个在命令行下就能运行的文本编辑器,它的用法像Windows下的“记事本”一样简单,图1-13是一个在Linux下运行nano的页面。
图1-13 nano运行页面
在确保系统中安装了nano工具的前提下,想要使用nano,只需要首先通过cd命令切换到某一路径下,然后运行下面的命令。
命令1-7
nano test.c
这样就可以打开一个test.c文件,并进入文本编辑的页面中了。在写入适当的内容之后,按下“Ctrl+O”组合键可以保存文件,按下“Ctrl+X”组合键可以退出页面。
如果有些朋友还是觉得使用图形化的工具更加方便,那么,在Linux下,也有很多图形化的文本编辑器可供选择,如gedit、gvim、mousepad,等等。这些工具的使用方法与Windows下的编辑工具完全一致。最终我们还是要通过命令行来编译源程序。