VS Code 进行远程Cmake编译

VS code远程连接服务器,见上一篇:

VS Code 远程连接服务器_玛丽莲茼蒿的博客-CSDN博客

如果服务器上是一个比较大的项目,最好用cmake编译。实现了 VS Code的远程编辑功能还是不够的,如果要编译,还得打mkdir build、cd build、cmake .. 、make等一堆命令。所以如果能用VS的插件cmake进行远程的源文件的cmake就更好了。

VS Code构建C++远程开发环境IDE - 知乎

 --------------------------------失败了别看了------------------------

还需要在远程开发这个工作空间中重新安装一遍插件(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,报出以下错误

 解决如下:​​​​​​ubuntu中vscode使用cmake插件编译C++出错“Error: Configured generator does not match with CMAKE_GENERATOR..【已解决】_Taylor_0522的博客-CSDN博客

“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 脚本名

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值