众所周知,VSCode是一款非常优秀的 IDE(划掉) 文本编辑器。很多人对它好看的皮肤和图标垂涎三尺,却因它麻烦的配置望而却步。今天,binary_song就手把手教大家如何用 VSCode 代替 Visual Studio 写 Windows 上的 C++ 程序。
看着自己被亲弟弟ntr(不是)
下载地址:https://cmake.org/download/ 选择.msi文件下载。
因为某种大家都知道的原因,CMake的下载慢得出奇。在你下载的时候,不妨了解一下 C/C++工程的构建过程,这也是我们今天的理论基础。(如果你是一个被VS惯坏的小白,不知道这些没关系,但现在用VSCode,就先得跳出舒适圈啦)
gcc helloworld.c -o helloworld 即可。可是一个真实的项目不可能只有一个.c文件,它一定有好多.c和.h文件,这时再直接调用编译器就十分麻烦。我们可能想要指定一个文件夹的全部文件都是源文件(.c .cpp文件),另一个文件夹的全部文件都是头文件(.h文件)。很可惜,尽管这很简单,但我们的编译器一般不提供这种功能,它由构建系统提供。
构建系统还有其他功能,如处理依赖关系、自动测试、持续集成等等,但今天我们简单的工程用不到。
所以梳理一下,CMake只是一个工程文件生成器,光有他还不够,还要有MSBuild构建系统和MSVC编译器才能真正编译好一个C++工程。
然后我们新建一个文件夹MyProject,拖到VSCode图标上,用VSCode打开这个文件夹。
我们先要安装2-3个拓展:
接下来快捷键ctrl+shift+p,打开指令面板。输入CMake:Quick Start,回车选择它。
然后我们要选择我们的toolset,所谓toolset,就是我们的编译器和构建系统这些工具集。CMake会自动扫描,如果你的Visual Studio安装妥当,应该至少有下面这些。
我们选amd64即可,之后等待CMake Tools 一顿操作,如果提示找不到CMakeLists.txt,就点击生成新的CMake项目。然后输入项目名称MyProject,项目类别选可执行文件。
如果CMake想要配置intellisense也点击允许。
我们直接点下方▶按钮,运行它的默认工程(运行前会自动生成)。不出意外,应该会在屏幕中输出Hello,world!。
接下来我们看看CMakeTools 的界面。
你可能会好奇,为什么左侧有那么多“实用工具”。其实,它们是测试用的,我们暂时不需要它们。我们现在打开根目录中的CMakeLists.txt。
这是告诉CMake如何生成工程文件的。那么显然,修改完它,要重新生成一遍工程文件(称为Configure),然后再根据这个新工程文件进行Build。要不然改了等于白改。
我们只留下3行,其他删掉。
cmake_minimum_required(VERSION 3.0.0)
project(MyProject VERSION 0.1.0)
add_executable(MyProject main.cpp)
第一行是CMake特色,用它还得把它版本号加上。有点莫名其妙,但不写不行(不用改它)。
第二行是声明一个工程,取名MyProject,版本号设为0.1.0。之前说了,一个工程里有一个或多个二进制target。
第三行就是声明一个target,添加到MyProject工程中。target的类型是可执行文件,用main.cpp编译而成。
然后,我们根据修改后的CMakeLists.txt生成VS工程文件。点击左上角的Configure按钮。
一点击,target列表就少了好多。再运行一下(下方▶按钮),应该还是输出Hello, world!。
接下来,我们让工程变得复杂一些,我们想建立一个src文件夹,里面放源文件;再建立一个include文件夹,里面放头文件,用这些文件编译成一个可执行文件。就和我们在VS里干的差不多。
目录结构:
sayhi.h
#ifndef SAYHI_H
#define SAYHI_H
void sayHi();
#endif
sayhi.cpp
#include "sayhi.h"
#include <cstdio>
void sayHi() {
printf("Hi");
}
main.cpp
#include <iostream>
#include "sayhi.h"
int main(int, char) {
sayHi();
}
我们再次修改CMakeLists.txt。
cmake_minimum_required(VERSION 3.0.0)
project(MyProject VERSION 0.1.0)
aux_source_directory(src SRC_DIR)
add_executable(MyTarget ${SRC_DIR})
target_include_directories(MyTarget PUBLIC include)
前两行不变
第三行声明了一个变量SRC_DIR,并把src文件夹中的所有文件都塞了进去。
第四行表示用SRC_DIR里的文件编译可执行文件MyTarget(为了区分,我悄悄把名字改了,之前叫MyProject)。注意这个${},他表示SRC_DIR不是一个源文件的名字,而是一个变量的名字。
第五行指定MyTarget的包含目录为include文件夹。这样你在#include头文件时,就不需要把完整路径写上了。中间的PUBLIC表示这个包含目录不仅被MyTarget内部使用,而且可以作为对外接口。(如果只能内部使用,则设为PRIVATE,如果只做外部接口(有点奇怪的设定?),则设为INTERFACE。如果不想管那么多,就写成PUBLIC吧。)
一切就绪,我们点击左上角的Configure按钮(见前图)。再点击运行!不出意外的话,应该输出"Hi"。
注意:每当你添加、删除源文件时,都要点一下Configure。这样才能让CMake更新SRC_DIR变量,从而获取改变后的文件。
因为某些神秘的原因,我们直接点击调试🐞按钮无法看见输出,也找不到地方输入,但断点和监视还是起作用的。
这个问题可能会让很多小白抓狂(没错,说的就是我自己)。原因可能是VSCode不支持截获Visual C++应用的输入输出?但不管怎么样,使用外部控制台(external console)即可解决这个问题。
我们在.vscode文件夹中新建一个launch.json,输入以下内容
{
"version": "0.2.0",
"configurations": [
{
"name": "调试本工程",
"type": "cppvsdbg",
"request": "launch",
"program": "${command:cmake.launchTargetPath}",
"args": [],
"stopAtEntry": false,
"cwd": "${workspaceFolder}",
"externalConsole": true
}
]
}
按F5或点击左下角“调试本工程”,就可以快乐的调试啦。
如果本文帮到你的话,请点个赞投个币吧~
到此这篇vs如何创建c语言项目(vs如何创建c++项目)的文章就介绍到这了,更多相关内容请继续浏览下面的相关推荐文章,希望大家都能在编程的领域有一番成就!版权声明:
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若内容造成侵权、违法违规、事实不符,请将相关资料发送至xkadmin@xkablog.com进行投诉反馈,一经查实,立即处理!
转载请注明出处,原文链接:https://www.xkablog.com/cjjbc/20196.html