下面我们通过一个简单的例子来说明,如何利用编译器开始C++开发:
获取GCC编译器并安装(参考 编译环境搭建 章节)
在Msys2安装目录下双击mingw64.exe启动Msys2命令行窗口。
在Msys2命令行中输入mkdir workspace创建编程工作目录
在Msys2命令行中输入cd workspace\进入编程工作目录(如果输入文件名太长可以通过Tab按钮来简化输入长文件名过程
在Msys2命令行中输入nano进入nano编辑窗口,开始代码编写
#include <iostream>
using namespace std;
int main()
{
cout<<"Hello ,world!"<<endl;
return 0;
}
在nano编辑窗口中输入如上代码段,按ctrl+o保存源代码文件helloworld.cpp,按ctrl+x离开nano窗口。
在Msys2命令行中输入 g++ helloworld.cpp编译源代码
在Msys2命令行中输入ls,查看当前文件夹下的文件。由于没有指定输出执行文件名称,默认生成文件a.exe。在Msys2命令行中输入./a.exe,查看我们编好的第一个程序运行情况。
在Msys2命令行中输入g++ helloworld.cpp -o helloworld,可以指定生成可执行文件名称在Msys2命令行中输入./helloworld.exe,查看程序运行结果。
如果有多个源代码文件我们可以通过如下命令来完成编译:g++ helloworld.cpp helloworld1.cpp -o helloworld。此时这些一起编译的源代码文件中只能有一个main函数,不然会提示如下编译错误:
D:/SDK/C++/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/12.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: D:\SDK\C++\msys64\tmp\ccXd6leD.o:helloworld1.cp:(.text+0x0): multiple definition of `main'; D:\SDK\C++\msys64\tmp\ccKGuNMd.o:helloworld.cpp:(.text+0x0): first defined here
collect2.exe: error: ld returned 1 exit status
通过如下修改可以已解决该编译错误
#include <iostream>
using namespace std;
int helloworld1()
{
cout<<"Hello ,world!"<<endl;
return 0;
}
在Msys2命令行窗口中输入 g++ -g -Wall -std=c++11 helloworld.cpp -o helloworld指定程序采用的C++标准版本,一般编译器默认采用C++98标准。
参考教程