Windows下配置vscode开发C
配置vscode
安装灵魂扩展插件C/C++
在vscode扩展里搜索C++即可.
安装MinGw
跟宇宙级选手VS
或者一些IDE
不一样, vscode
没有内置相关的编译器, 所以需要额外安装. 这里我根据官方的推荐, 使用的是MinGW
MinGW
估计只是个包管理工具, 安装完成后打开MinGW
, 选择Basic Setup
, 勾选所有的包, 然后在菜单栏选择Installation
-> Apply Changes
, 等待下载安装完成.
编译C文件
MinGW
貌似不会将自身写入到系统环境变量, 因此需要手动添加, 如C:\MinGW\bin
配置好环境变量后, 就可以通过CLI
编译C文件了
gcc file.c -o file.exe -g
值得注意带上-g
参数, 这个为我们下一步debug奠定了基础(我这边不带无法通过gdb
进行debug, 参见ftp://ftp.gnu.org/old-gnu/Manuals/gdb/html_node/gdb_16.html
debug C文件
首先要在.vscode
下新建lanuch.json
(如果没有, 在第一次debug的时候vscode
会提示你创建的
我的配置如下:
{
"version": "0.2.0",
"configurations": [
{
"name": "(gdb) Launch",
"type": "cppdbg",
"request": "launch",
"program": "${workspaceRoot}/clang/main.exe", // 你要debug的程序, 是编译后的文件而非源文件
"args": [],
"stopAtEntry": false,
"cwd": "${workspaceRoot}",
"environment": [],
"externalConsole": true,
"MIMode": "gdb",
"miDebuggerPath": "C:\\MinGW\\bin\\gdb.exe", // MinGW里的gdb.exe路径
"setupCommands": [
{
"description": "Enable pretty-printing for gdb",
"text": "-enable-pretty-printing",
"ignoreFailures": true
}
]
}
]
}
配置好后, 跟debug node
操作相同.
关于C标准包的路径
仔细的你可能会注意到, vscode
会提示代码里的#include <**>
没有找到包的路径, 我们可以在.vscode
下创建c_cpp_properties.json
, 在browse
属性里设置, 标准库都在MinGW
里. 我的配置如下:
{
"name": "Win32",
"includePath": [
"${workspaceRoot}"
],
"defines": [
"_DEBUG",
"UNICODE"
],
"intelliSenseMode": "msvc-x64",
"browse": {
"path": [
"C:/MinGW/lib/gcc/mingw32/6.3.0/include", // 这里添加路径, 一般都在lib/里面
"${workspaceRoot}"
],
"limitSymbolsToIncludedHeaders": true,
"databaseFilename": ""
}
}
基本上这样就可以进行简单的开发了=. =
这里放出一些我在折腾里查看的教程
How to install MinGW in windows
开始WebAssembly之旅
教程参见tutorialzine, 我这里只简单说下折腾遇到的坑
安装emscripten
前往官网下载emscripten, 解压后使用命令行进入到解压后的目录, 按照文档说明操作
在emsdk install latest
过程中, 由于下载的源是亚马逊的, 墙内下载可能很慢, 我们可以借助下载工具下载到根目录下的zips
, 重新执行emsdk install latest
, 程序会直接解压你下载的包. 如果是使用此方法, 可能要执行多次install
了(我就是这样...
在emsdk activate latest
和emsdk_env.bat
的过程中, 程序无法自动写入到系统环境变量和用户变量, 只能手动添加了, 需要添加的环境变量路径大概类似D:\Program Files\emsdk-portable-64bit\emscripten\1.37.21
, 里面有个emcc
的执行文件, 这在教程里会用到的
另外emscripten
是基于python2
写的, 也就是python3
用不了, 所以如果你像我一样用的python3
, 你需要重新配置python2
的环境变量, 令人欣喜的是, 通过emsdk install latest
执行后, 已经帮你准备了一个python2
的版本了, 你可以配置这个路径的环境变量, 如D:\Program Files\emsdk-portable-64bit\python\2.7.5.3_64bit
最后有一点不确定的, 貌似通过emscripten
玩WebAssembly
, 需要通过python
来启动一个服务器, 我用browser-sync
起服务, 执行emcc
命令的时候, 貌似不会编译C文件, 所以还是按照教程来吧.
总结
一句话总结: 好累好累好累. 不过我要开始重新玩玩C啦, 嘎哈哈!