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入门实践
本课程将基于基础设施即代码 IaC 的理念,介绍阿里云自动化编排服务ROS的概念、功能和使用方式,并通过实际应用场景介绍如何借助ROS实现云资源的自动化部署,使得云上资源部署和运维工作更为高效。
相关文章
|
9月前
|
安全 Linux iOS开发
Nessus Professional 10.10 Auto Installer for RHEL 10, AlmaLinux 10, Rocky Linux 10 - Nessus 自动化安装程序
Nessus Professional 10.10 Auto Installer for RHEL 10, AlmaLinux 10, Rocky Linux 10 - Nessus 自动化安装程序
628 6
Nessus Professional 10.10 Auto Installer for RHEL 10, AlmaLinux 10, Rocky Linux 10 - Nessus 自动化安装程序
|
安全 Linux Shell
Linux上执行内存中的脚本和程序
【9月更文挑战第3天】在 Linux 系统中,可以通过多种方式执行内存中的脚本和程序:一是使用 `eval` 命令直接执行内存中的脚本内容;二是利用管道将脚本内容传递给 `bash` 解释器执行;三是将编译好的程序复制到 `/dev/shm` 并执行。这些方法虽便捷,但也需谨慎操作以避免安全风险。
575 7
|
网络协议 Linux
Linux查看端口监听情况,以及Linux查看某个端口对应的进程号和程序
Linux查看端口监听情况,以及Linux查看某个端口对应的进程号和程序
2195 2
|
Ubuntu Linux 编译器
Linux/Ubuntu下使用VS Code配置C/C++项目环境调用OpenCV
通过以上步骤,您已经成功在Ubuntu系统下的VS Code中配置了C/C++项目环境,并能够调用OpenCV库进行开发。请确保每一步都按照您的系统实际情况进行适当调整。
3285 3
|
运维 Java Linux
【运维基础知识】Linux服务器下手写启停Java程序脚本start.sh stop.sh及详细说明
### 启动Java程序脚本 `start.sh` 此脚本用于启动一个Java程序,设置JVM字符集为GBK,最大堆内存为3000M,并将程序的日志输出到`output.log`文件中,同时在后台运行。 ### 停止Java程序脚本 `stop.sh` 此脚本用于停止指定名称的服务(如`QuoteServer`),通过查找并终止该服务的Java进程,输出操作结果以确认是否成功。
1410 1
|
消息中间件 分布式计算 Java
Linux环境下 java程序提交spark任务到Yarn报错
Linux环境下 java程序提交spark任务到Yarn报错
567 5
|
Linux C语言 C++
vsCode远程执行c和c++代码并操控linux服务器完整教程
这篇文章提供了一个完整的教程,介绍如何在Visual Studio Code中配置和使用插件来远程执行C和C++代码,并操控Linux服务器,包括安装VSCode、安装插件、配置插件、配置编译工具、升级glibc和编写代码进行调试的步骤。
4384 0
vsCode远程执行c和c++代码并操控linux服务器完整教程
sublime和vscode 推荐安装的插件
sublime和vscode 推荐安装的插件
518 0
|
人工智能 自然语言处理 算法
国产新型AI编程助手—DevChat AI插件在VSCode中的应用
国产新型AI编程助手—DevChat AI插件在VSCode中的应用
1283 0