VS code远程连接服务器,见上一篇:
VS Code 远程连接服务器_玛丽莲茼蒿的博客-CSDN博客
如果服务器上是一个比较大的项目,最好用cmake编译。实现了 VS Code的远程编辑功能还是不够的,如果要编译,还得打mkdir build、cd build、cmake .. 、make等一堆命令。所以如果能用VS的插件cmake进行远程的源文件的cmake就更好了。
--------------------------------失败了别看了------------------------
还需要在远程开发这个工作空间中重新安装一遍插件(C/C++扩展、CMake、CMake Tools)?
在远程主机上新建".vscode"文件夹,vscode才能帮忙编译,否则vscode 只是远程打开了各个文件,只能作为编辑器而不能作为编译器。
1. c_cpp_propertires.json文件
按"ctrl+p",在搜索栏中输入一个">",然后输入edit configurations(UI),点击
进去以后,点击“c_cpp_propertires.json”这个链接,就在.vscode文件夹中生成了c_cpp_propertires.json文件
{
"configurations": [
{
"name": "Linux",
"includePath": [
"${workspaceFolder}/**"
],
"defines": [],
//"compilerPath": "/usr/bin/clang", //原来默认的
"compilerPath": "/usr/bin/gcc",
"cStandard": "c11",
"cppStandard": "c++14",
//"intelliSenseMode": "linux-clang-arm64" //原来默认的
"intelliSenseMode": "gcc-x64",
"configurationProvider": "ms-vscode.cmake-tools"
}
],
"version": 4
}
2. launch.json文件
launch.json文件忘记是怎么出现的了,可以自己新建一个。launch.json
文件是告知VSCode在启动调试过程中如何启动程序,类似Visual Studio的调试选项。
要修改的:
(1)program:指定可执行文件的路径。如果以后再CMakeList.txt更改了可执行文件的名称,这里也需要修改
(2)preLaunchTask:这个是新加的元素,默认是没有的。指定了在调试之前需要执行的任务,去tasks.json里面找。
{
// 使用 IntelliSense 了解相关属性。
// 悬停以查看现有属性的描述。
// 欲了解更多信息,请访问: https://go.microsoft.com/fwlink/?linkid=830387
"version": "0.2.0",
"configurations": [
{
"name": "(gdb) 启动",
"type": "cppdbg",
"request": "launch",
"program": "${workspaceFolder}/build/clienttriton", //可执行文件的路径
"args": [],
"stopAtEntry": false,
"cwd": "${fileDirname}", //工作目录(${fileDirname}: the current opened file's dirname)
"environment": [],
"externalConsole": false,
"MIMode": "gdb",
"preLaunchTask": "build debug", // 这是在调试之前需要执行的任务,需要跟tasks.json文件配合起来工作
//所以需要新建一个tasks.json文件,里面定义一个label为"build debug"的任务
"setupCommands": [
{
"description": "为 gdb 启用整齐打印",
"text": "-enable-pretty-printing",
"ignoreFailures": true
}
]
}
]
}
3.tasks.json文件
{
// See https://go.microsoft.com/fwlink/?LinkId=733558
// for the documentation about the tasks.json format
"version": "2.0.0",
"tasks": [
{
"label": "build debug",
"type": "shell",
"linux": {
"command": "mkdir -p build && cd build && cmake ../ && make", // 这项配置是定义在每次编译之前都会执行一遍cmake
}
}
]
}
点击cmake或者build,报出以下错误
“Error: Configured generator does not match with CMAKE_GENERATOR found in cache.”,大意是已配置的生成器generator和cache发现的CMAKE_GENERATOR不匹配 。
cmake生成器会通过cmakelist.txt文件,生成适用于不同项目类型的makefile文件。根据cmake生成器类型的不同,生成的makefile类型也不同。
我们需要的是第一种。
需要配置一下,规定generator的类型为“Unix Makefiles”
然后就可以解决了。
最好把cmake tools也设置一下
但是cmake还是有问题,找不到openCV
错误在于vscode的cmake找不到open CV 这个库,根据提示,应该把跟openCV有关的cmake文件所在路径加入到某个地方。其实报错的下面也给出了两种解决方案,“Add .... to CMAKE_PREFIX_PATH ”or “set ....”。
按照第二个方法,用locate命令,查找openCVConfig.cmake文件所在的文件夹,加入下面一行,还是解决不了,放弃了
所以,最后,我直接在工程目录下写了一个脚本。。。
rm -rf build
mkdir build
cd build
cmake ..
make
下次直接输入命令,就可以了
bash 脚本名