1.问题背景

我们在使用VS Code运行和调试cpp(c++)程序时,总是经常出现恼人的“未找到Make”、“找不到Makefile入口点”的报错信息。

虽然对于我们平常编写的简单的单源文件程序,上述两条报错信息并没有实质影响,忽略它们并不影响程序生成和执行,但是总是出现,也很烦躁。对于多源文件程序开发来说,Makefile是必不可少的,下面我们逐一讨论如何解决它们。

问题1

其中“未找到Make”是由于本机中找不到make.exe这个文件,可以使用mingw64的mingw-make.exe代替,在原路径(c:\mingw64\bin)下将其复制一份并改名为make.exe即可。

问题2

“找不到Makefile入口点”是由于没有设置Makefile所致,有两种方法来解决此问题。

2.方法一:

1.手动配置Makefile
2.用make生成可执行文件

2.1.在项目根目录下新建Makefile文件,其内容如下 (注意第二行前面必须有一个Tab键)

helloworld:helloworld.cpp
g++ -std=c++23 -o helloworld helloworld.cpp

2.2.用CMD窗口,切换路径到项目根目录下,运行make

生成执行程序正常,并且程序运行正常。再次进行运行调试操作,发现不再报上述错误信息。

关于Makefile的配置,请参考:B站Makefile的简单入门视频

3.方法二:

1.使用CMake自动生成Makefile
2.然后再用make生成可执行文件

3.1.新建 CMakeList.txt文件

在项目根目录下新建工作目录 build,并在项目根目录下新建 CMakeList.txt文件,创建内容如下,按 ctrl+S键保存,保存后 Vs Code会自动运行 cmake,编译并生成过程文件(非最终的可执行文件)。

3.2.运行make报错

在终端窗口或CMD窗口,进入项目根目录下的 build目录,运行 make,生成可执行文件,发现报错如下:

终端窗口输出的错误信息摘录如下:

报错信息提示“number未声明”,这还是c++标准配置的问题。

3.3.修改 CMakeList.txt文件

修改 CMakeList.txt文件,增加一条 set语句将语言标准设为 C++23,修改后内容如下,按 ctrl+S键保存,系统自动运行 cmake,编译并生成过程文件(非最终的可执行文件)。

3.4.再次运行 make正常

在终端窗口或CMD窗口,进入项目根目录下的 build目录,运行 make,即可生成可执行文件,启动运行输出正常。

关于CMake的使用,请参考:B站Cmake的入门视频以及使用 CMake 预设进行配置和生成