命令行界面编译运行C/C++程序
命令行界面编译运行C/C++程序 2016-10-14
编写好程序后,就需要对程序进行编译、执行。很多编译器都具备集成开发环境(IDE),在开发大型程序时,IDE强大的功能十分有用。然而当程序较小,使用IDE就会非常麻烦。比如,如果用IDE写一个冒泡排序算法对一个数组进行排序,就需要新建项目、项目中添加源文件、编写程序、编译、调试、执行,仅仅是一个简单的冒泡排序,就需要可能比写程序更长的时间对IDE进行各种操作。很多PC启动Visual Studio的时间可能都比较长,这样使用IDE并不方便。特别是对于C/C++的初学者,只需要关注语言本身,而不是一些开发工具,IDE繁杂的各种菜单功能对使用者是个大麻烦。对此,借助命令行界面编译、运行程序就十分方便。
以GCC编译器为例:
很多朋友的电脑都是Windows,而GCC编译器是Linux的默认编译器,使用Windows的朋友如果不想换系统,还想使用功能强大的GCC,可以安装MinGW(Minimalist GNU for Windows)。
MinGW 4.8.1下载链接(百度云):
链接:http://pan.baidu.com/s/1gfJmMXl 密码:bniv
将压缩文件解压至D盘(其他文件目录也可,仅以D盘为例),添加环境变量” D:\mingw32\bin”。
查看GCC版本,可运行cmd,输入命令:($为系统提示符)
$ gcc –v
以冒泡排序程序为例,说明命令行界面的使用。
在” D:\myCode\”下建立C++源文件test.cpp(新建TXT文件,更改文件名和后缀名),用Sublime Text(或者Notepad++、gedit等文本编辑器)打开test.cpp,编写程序如下:
1 #include <iostream>
2 using namespace std;
3 void bubbleSort(int *arr, int len)
4 {
5 int temp;
6 if (len < 2)
7 return;
8 for (int i = 1; i < len; ++i) {
9 for (int j = 0; j < len - i; ++j) {
10 if (arr[j] > arr[j + 1]){
11 temp = arr[j];
12 arr[j] = arr[j + 1];
13 arr[j + 1] = temp;
14 }
15 }
16 }
17 }
18 int main()
19 {
20 int arr[10] = { 34, 11, 6, 89, 1, 60, 7, 901, 33, 52 };
21 bubbleSort(arr, 10);
22 cout << "Bubble Sort Result:" << endl;
23 for (int i = 0; i < 10; ++i)
24 cout << arr[i] << " ";
25 cout << endl;
26 }
如果程序需要其他自定义头文件,请将自定义头文件与源文件放在同一目录下。
然后在” D:\myCode\”处打开命令窗口,键入命令:
$ g++ test.cpp
如果程序没有错误,g++命令会编译test.cpp程序,生成可执行程序a.exe。如果需要自定义生成可执行文件的文件名,请键入命令:
$ g++ test.cpp –o test.exe 或者 $ g++ test.cpp –o test
这样就会生成可执行程序test.exe。
如果要编译C语言程序呢? 那么,将编译命令的g++替换为gcc即可。
在Windows中查看程序返回状态命令:
$echo %ERRORLEVEL%
如果生成文件为test.exe,命令行中键入命令:$ test.exe 或者$ test,便可运行程序。
另外,如果使用Visual Studio(比如VS2010或者VS2013),编译命令为:
$ cl/Ehsc test.cpp
该命令会生成可执行程序test.exe。
如何使用编译器支持的C++11标准呢? 请键入命令:
$ g++ test.cpp –std=c++11 或者 $ g++ test.cpp –o test –std=c++11