linux中利用VScode编写C++程序

本文涉及的产品
资源编排,不限时长
简介: linux中利用VScode编写C++程序

一、创建一个工作空间

首先创建一个工作空间以及一个src子目录,然后再进入工作空间调用catkin_make命令编译

mkdir -p demo02_ws/src
cd demo02_ws/
catkin_make

启动VScode

code .

按Ctrl+Shift+B,点击catkin_make:build

将里面的文本全部替换

{
  "version": "2.0.0",
  "tasks": [
    {
      "type": "catkin_make",
      "problemMatcher": [
        "$catkin-gcc"
      ],
      "group": "build",
      "label": "catkin_make: build"
    }
  ]
}
将上面代码全部替换成下面代码
{
  "version": "2.0.0",
  "tasks": [
    {   
            "label":"catkin_make:debug",
      "type": "shell",
            "command":"catkin_make",
            "args":[],
      "group": {"kind":"build","isDefault":true},
            "presentation":{
                "reveal":"always"
            },
            "problemMatcher":"$msCompile"
    }
  ]
}

这样做的目的是为了方便编译,以后在VScode中按Ctrl+Shift+B就可以实现编译

 

二、再创建一个功能包

用鼠标右键点击src,选择create catkin package,在输入框填一个名字hello_vscode

再到输入框输入 roscpp rospy std_msgs

在src中生成一个功能包,该功能包依赖于roscpp,rospy,std_msgs,其中roscpp是使用C++实现的库,rospy是使用python实现的库,std_msgs是标准消息库,创建ROS功能包时,一般都会依赖这三个库实现。

建议写要求性能高,算法复杂的代码用C++,写一些功能简单的工具包的代码使用python。

三、编辑源文件

鼠标右键点击里面的src,新建文件hello_vscode_c.cpp

点击c_cpp_properties.json,将文件里面的gun++14修改成c++17,关闭保存该文件

再到hello_vscode_c.cpp中写代码

//1.包含ros的头文件
    #include"ros/ros.h"
    //2.编写main函数
    int main(int argc,char *argv[]){
        //3.初始化ros节点
        ros::init(argc,argv,"hello");
        //4.输出日志
        ROS_INFO("haha");
        return 0;
    }


四、编辑配置文件

此时打开与里面src同目录的CmakeLists.txt文件

找到

# add_executable(${PROJECT_NAME}_node src/hello_vscode_node.cpp)

去掉 #

将helloworld_vscode_node.cpp改成helloworld_vscode_c.cpp

将${PROJECT_NAME}_node改称自定义名字如helloworld_vscode_c

找到

# target_link_libraries(${PROJECT_NAME}_node

#${catkin_LIBRARIES}

#)

去掉 #

       #

      #

将${PROJECT_NAME}_node改称自定义名字如helloworld_vscode_c

最后按Ctrl+Shift+B进行编译

五、编译并执行

点击终端里面的+,新建终端

编译成功后新开一个终端

cd ~/demo02_ws/
roscore

然后再新建终端输入

source ./devel/setup.bash
rosrun hello_vscode hello_vscode_c

 

成功后如图所示

相关实践学习
使用ROS创建VPC和VSwitch
本场景主要介绍如何利用阿里云资源编排服务,定义资源编排模板,实现自动化创建阿里云专有网络和交换机。
阿里云资源编排ROS使用教程
资源编排(Resource Orchestration)是一种简单易用的云计算资源管理和自动化运维服务。用户通过模板描述多个云计算资源的依赖关系、配置等,并自动完成所有资源的创建和配置,以达到自动化部署、运维等目的。编排模板同时也是一种标准化的资源和应用交付方式,并且可以随时编辑修改,使基础设施即代码(Infrastructure as Code)成为可能。 产品详情:https://www.aliyun.com/product/ros/
相关文章
|
2月前
|
安全 Linux Shell
Linux上执行内存中的脚本和程序
【9月更文挑战第3天】在 Linux 系统中,可以通过多种方式执行内存中的脚本和程序:一是使用 `eval` 命令直接执行内存中的脚本内容;二是利用管道将脚本内容传递给 `bash` 解释器执行;三是将编译好的程序复制到 `/dev/shm` 并执行。这些方法虽便捷,但也需谨慎操作以避免安全风险。
176 6
|
8天前
|
监控 Ubuntu Linux
使用VSCode通过SSH远程登录阿里云Linux服务器异常崩溃
通过 VSCode 的 Remote - SSH 插件远程连接阿里云 Ubuntu 22 服务器时,会因高 CPU 使用率导致连接断开。经排查发现,VSCode 连接根目录 ".." 时会频繁调用"rg"(ripgrep)进行文件搜索,导致 CPU 负载过高。解决方法是将连接目录改为"root"(或其他具体的路径),避免不必要的文件检索,从而恢复正常连接。
|
1月前
|
存储 程序员 编译器
简述 C、C++程序编译的内存分配情况
在C和C++程序编译过程中,内存被划分为几个区域进行分配:代码区存储常量和执行指令;全局/静态变量区存放全局变量及静态变量;栈区管理函数参数、局部变量等;堆区则用于动态分配内存,由程序员控制释放,共同支撑着程序运行时的数据存储与处理需求。
99 21
|
1月前
|
Ubuntu Linux 编译器
Linux/Ubuntu下使用VS Code配置C/C++项目环境调用OpenCV
通过以上步骤,您已经成功在Ubuntu系统下的VS Code中配置了C/C++项目环境,并能够调用OpenCV库进行开发。请确保每一步都按照您的系统实际情况进行适当调整。
255 3
|
1月前
|
运维 Java Linux
【运维基础知识】Linux服务器下手写启停Java程序脚本start.sh stop.sh及详细说明
### 启动Java程序脚本 `start.sh` 此脚本用于启动一个Java程序,设置JVM字符集为GBK,最大堆内存为3000M,并将程序的日志输出到`output.log`文件中,同时在后台运行。 ### 停止Java程序脚本 `stop.sh` 此脚本用于停止指定名称的服务(如`QuoteServer`),通过查找并终止该服务的Java进程,输出操作结果以确认是否成功。
34 1
|
1月前
|
Linux C语言 C++
vsCode远程执行c和c++代码并操控linux服务器完整教程
这篇文章提供了一个完整的教程,介绍如何在Visual Studio Code中配置和使用插件来远程执行C和C++代码,并操控Linux服务器,包括安装VSCode、安装插件、配置插件、配置编译工具、升级glibc和编写代码进行调试的步骤。
186 0
vsCode远程执行c和c++代码并操控linux服务器完整教程
|
2月前
|
消息中间件 分布式计算 Java
Linux环境下 java程序提交spark任务到Yarn报错
Linux环境下 java程序提交spark任务到Yarn报错
41 5
|
2月前
|
C++
【C++基础】程序流程结构详解
这篇文章详细介绍了C++中程序流程的三种基本结构:顺序结构、选择结构和循环结构,包括if语句、三目运算符、switch语句、while循环、do…while循环、for循环以及跳转语句break、continue和goto的使用和示例。
44 2
|
6月前
sublime和vscode 推荐安装的插件
sublime和vscode 推荐安装的插件
77 0
|
6月前
|
人工智能 自然语言处理 算法
国产新型AI编程助手—DevChat AI插件在VSCode中的应用
国产新型AI编程助手—DevChat AI插件在VSCode中的应用
251 0