当我们编写完代码,我们需要编译它。怎样编译你的程序取决于你的操作系统和编译器。想要知道你的编译器在编译时的细节,请参考编译器的相关文档或请教请教身边经验丰富的同事。
许多基于PC端的编译器会在绑定了编译器的IDE上运行,这种环境在开发大型项目时会是一个很好的工具但却需要一定的时间去学习怎样使用它来提高开发效率。学习如何高效的使用IDE已经超出了本书的范围。
大多数的编译器,包括那些绑定在IDE上的编译器,提供一个控制台接口。除非你已经很了解这个IDE的使用,你才能很容易的找到并开始编控制台程序。这样做的好处是能让你更加专注于C++的学习,再有甚者,如果你理解了C++,你会觉得如何使用IDE是很容易学会的。
程序源文件命名规约
无论你是用控制台还是IDE,绝大多数的编译器希望程序的源代码存放在一个或多个文件中。程序文件通常叫源文件。在大多数操作系统中源文件有个后缀名。这些后缀名告诉操作系统这是个C++程序。不同的编译器使用着不同的后缀名,最通用的是.cc,.cxx,.cpp,.cp和.c。
从控制台运行编译器
如果我们使用控制台接口编译程序的话,我们将会在控制台窗口中编译程序。假设我们的main程序保存在prog1.cc中,我们可能通过以下指令去编译它:
$ CC prog1.cc
在这里CC是编译器的名字,$是系统提示符,编译器生成一个可执行文件。在Windows系统中这个可执行文件会命名为prog1.exe。在UNIX下,编译器可能会更倾向于命名为a.out。
在Windows下运行一个可执行文件,我们填写可执行文件的名字,但可以忽略后缀exe。
$ prog1
在有些操作系统下你必须明确的指定文件的路径,即使这个这个文件在当前目录或文件夹内。在这种情况下我们会这么写
$ .\prog1
.号表示这个文件在当前路径下。在UNIX下去运行一个可执行文件,我们会使用它的全名,包括后缀名。
$ a.out
如果我们需要指定这个文件的路径,我们需要使用./表示我们的可执行文件在当前路径下。
$ ./a.out
main程序的返回值通过依赖系统的方法传递出去。在Windows和UNIX下,当执行完程序后你可能需要一个echo命令。在UNIX下我们获得返回值可以这样:
$ echo $?
在Windows下可以这样:
$ echo %ERRORLEVEL%