原来我在Windows下工作时,使用的开发工具是Visual Studio 2010。转入Linux平台后,先后尝试过多种工具,例如Emacs、Qt Creator、Code::Blocks、NetBeans与KDevelop,这些工具各有特点,目前还在使用的是Emacs与KDevelop。这段时间因为要学习使用Lua,为了让开发工作尽量能在一个工具中完成,想了想决定学习使用微软的Visual Studio Code。一方面是因为这个工具是免费的,另一方面是简约。这里把我学习使用VSCode的过程记录下来,以后随着学习的深入肯定会有改动。
我使用的操作系统是Ubuntu 16.04 64位桌面版,下面是VSCode用于C++方面的安装配置过程。
1)安装C++插件
我安装了两个插件,分别是:
安装好后,重载VSCode。
2)编写测试C++代码
直接在VSCode中打开新建一个目录,并在里面随便写一份代码来测试,例如hello.cpp:
#include
int main() {
std::cout << "Hello, it's me." << std::endl;
return 0;
}
3)编写运行配置文件
写好测试程序后按F5,然后选择“C++(GDB/LLDB)”,会出现一个默认的配置文件,如下图:
把其中的内容修改成下图:
实际上我在这个配置文件中修改了两处,一个是生成的可执行文件名,由默认的a.out改为hello.out。另一处是把externalConsole关闭了,因为试验时打开会出错,具体解决方法和原因还不清楚,所以先关掉,用内置的。
4)编写任务配置文件
做完以上工作后,按Ctrl+Shift+B,然后点菜单中的“Terminal->Run Build Task”,这个时候会提示没有,没关系,继续点下图红圈的地方:
系统会继续提示是否创建,如下图,继续点就是。
在显示的菜单中,点“Others”,如下图:
系统会生成一个默认的配置文件,如下图:
修改其中的内容,改成下面的样子:
其中在args一栏就是设置编译参数的,注意文件名与各种参数一定要分开写,不要写在一起,否则会找不到。即使编译没有问题,在调试时还是会出问题。所以每一个参数一段,每一个文件一段,之间用逗号分隔。最后先构建(Ctrl+Shift+B),再调试执行(F5)。结果如下:
1)安装插件
我选用的是下面两个插件:
2)编写、构建CMake项目
这一步与我们平时编写CMake项目的方式是一样的,我在目录划分方面的习惯如下图:
CMakeLists.txt的内容如下:
cmake_minimum_required(VERSION 3.0)
project(hello)
add_definitions(-std=c++11)
aux_source_directory(src/ DIR_SRCS)
add_executable(hello.out ${DIR_SRCS})
link_directories(${DIR_SRCS})
写好CMakeLists.txt文件后,在文件窗口的下方有工具栏,上面有构建的命令,如下图:
点击build进行构建。
3)编写配置文件
编写launch.json文件,示例代码如下:
// Use IntelliSense to learn about possible attributes.
// Hover to view descriptions of existing attributes.
// For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
"version": "0.2.0",
"configurations": [
{
"name": "(gdb) Launch",
"type": "cppdbg",
"request": "launch",
"program": "${workspaceFolder}/build/hello.out",
"args": [],
"stopAtEntry": false,
"cwd": "${workspaceFolder}",
"environment": [],
"externalConsole": false,
"MIMode": "gdb",
"setupCommands": [
{
"description": "Enable pretty-printing for gdb",
"text": "-enable-pretty-printing",
"ignoreFailures": true
}
]
}
]
}
这里要设置的就是可执行文件的生成路径与文件名,另外还是要关闭外置的终端(以后弄明白问题所在之后再处理,目前并不影响使用)。
4)执行
按F5执行调试。因为有了CMake就不用再写task.json配置文件。
1)安装插件
下面是我选用的Lua调试插件:
2)编写好测试用的lua程序
3)编写配置文件
点击VSCode中的Debug按钮,在没有配置文件之前,其上显示的是没有配置,这里点旁边像齿轮一样的按钮,在出来的菜单中选择ravi debugger,系统会自动生成一个配置文件。
只需修改其中要调试的文件名,修改后的配置文件如下:
{
// Use IntelliSense to learn about possible attributes.
// Hover to view descriptions of existing attributes.
// For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
"version": "0.2.0",
"configurations": [
{
"name": "Ravi Debugger",
"type": "lua",
"request": "launch",
"program": "${workspaceRoot}/test1.lua",
"stopOnEntry": true,
"cwd": "${workspaceRoot}",
"LUA_PATH": "${workspaceRoot}/?.lua",
"LUA_CPATH": "${workspaceRoot}/?.dll"
}
]
}
4)正确摆放调试程序ravidebug
做完上述工作后,如果直接按F5进行调试,系统会找不到调试程序ravidebug。系统默认是在/bin/lunux/目录下查找这个调试程序,但这个文件实际上放在~/.vscode/extensions/ravilang.ravi-debug-0.0.23/bin/linux/目录下,所以我们只需把此文件放在/bin下即可:
cd ~/.vscode/extensions/ravilang.ravi-debug-0.0.23/bin
sudo cp -r linux/ /bin