在Windows命令行中编译运行C/C++程序

时间:2022-03-05 05:44:22

此处运行环境是在Windos下,运行cmd命令进入DOS界面

现在有一段简单C++代码(文件名为 demo.cpp),用于计算a*b的值

#include<iostream>
using namespace std;
int main(){
int a,b;
while(cin>>a>>b){
cout<<a<<"*"<<b<<"="<<a*b<<endl;
}
return 0;
}

demo.cpp文件的位置是在 C:\Users\Administrator\Desktop 目录下

第一步:在DOS界面进入这个目录

在Windows命令行中编译运行C/C++程序

第二步:用g++ 加上文件名,注意要加上文件扩展名,这样会生成一个a.exe的可执行文件(Windows默认生成a.exe,Linux默认生成a.out)

因为这里是C++源代码,所以要用g++命令,如果是C语言的源代码,则既可使用g++,也可以使用gcc(或者cc)命令。

在Windows命令行中编译运行C/C++程序在Windows命令行中编译运行C/C++程序

第三步:直接输入a.exe并回车, 即可执行由demo.cpp编译链接生成的程序(Linux环境下,则改成  ./a.out 运行程序)

在Windows命令行中编译运行C/C++程序

第四步:此时,输入参数即a与b的值,敲击回车之后即可出结果

在Windows命令行中编译运行C/C++程序

第五步:使用Ctrl+z终止程序

看了上面的过程,可能你会觉得不方便,

1->生成的可执行文件是a.exe而不是希望得到的demo.exe

2->每一次的每一条测试数据都得手动输入,太过于麻烦

针对问题一:

首先可以将上面的第二步中的g++ demo.cpp添加可选项-o

使用g++ -o demo.exe demo.cpp (或者 g++ -o demo demo.cpp)即可生成demo.exe可运行程序,

如果想命名为test.exe只需g++ -o test demo.cpp (或者 g++ -o test demo.cpp)即可

在Windows命令行中编译运行C/C++程序

针对问题二:

运行程序仍可以用demo.exe命令,但是此时还得一条一条的输入测试数据

但为了方便,可以将测试数据事先保存在文本文件(假设为input.txt)里面,

运行的时候直接往里面读取数据即可,注意的是input.txt里面的数据格式要按照demo.exe规定的格式

然后将结果写入另外一个文本文件(假设为output.txt)中,直接查看

使用demo.exe <input.txt> output.txt即可完成以上操作

在Windows命令行中编译运行C/C++程序

在Windows命令行中编译运行C/C++程序

在Windows命令行中编译运行C/C++程序

拓展:

如果你仔细看一下保存源代码的文件夹,你就会发现,当我们用IDE集成环境一键编译运行的时候,会出现 *.o文件,而此时用命令行编译运行没有生成 *.o文件,如果你想要 *.o 文件,那么你就需要在编译的时候添加一个 -c选项,这样就会只生成一个 *.o文件, *.o文件可以抽取出来,做成库文件