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

 

成功后如图所示

相关实践学习
Docker镜像管理快速入门
本教程将介绍如何使用Docker构建镜像,并通过阿里云镜像服务分发到ECS服务器,运行该镜像。
阿里云资源编排ROS使用教程
资源编排(Resource Orchestration)是一种简单易用的云计算资源管理和自动化运维服务。用户通过模板描述多个云计算资源的依赖关系、配置等,并自动完成所有资源的创建和配置,以达到自动化部署、运维等目的。编排模板同时也是一种标准化的资源和应用交付方式,并且可以随时编辑修改,使基础设施即代码(Infrastructure as Code)成为可能。 产品详情:https://www.aliyun.com/product/ros/
相关文章
|
7天前
|
存储 移动开发 Linux
Linux系统之部署h5ai目录列表程序
【5月更文挑战第3天】Linux系统之部署h5ai目录列表程序
21 1
|
3天前
|
存储 Linux 编译器
【Linux】详解动态库链接和加载&&对可执行程序底层的理解
【Linux】详解动态库链接和加载&&对可执行程序底层的理解
|
3天前
|
Linux C++
【Linux】详解进程程序替换
【Linux】详解进程程序替换
|
6天前
|
JSON Java Linux
【探索Linux】P.30(序列化和反序列化 | JSON序列化库 [ C++ ] )
【探索Linux】P.30(序列化和反序列化 | JSON序列化库 [ C++ ] )
20 2
|
6天前
|
网络协议 Java Linux
【探索Linux】P.29(网络编程套接字 —— 简单的TCP网络程序模拟实现)
【探索Linux】P.29(网络编程套接字 —— 简单的TCP网络程序模拟实现)
12 0
|
6天前
|
存储 网络协议 算法
【探索Linux】P.28(网络编程套接字 —— 简单的UDP网络程序模拟实现)
【探索Linux】P.28(网络编程套接字 —— 简单的UDP网络程序模拟实现)
12 0
|
6天前
|
存储 安全 算法
【Linux | C++ 】基于环形队列的多生产者多消费者模型(Linux系统下C++ 代码模拟实现)
【Linux | C++ 】基于环形队列的多生产者多消费者模型(Linux系统下C++ 代码模拟实现)
22 0
|
6天前
|
算法 Linux 数据安全/隐私保护
【Linux | C++ 】生产者消费者模型(Linux系统下C++ 代码模拟实现)
【Linux | C++ 】生产者消费者模型(Linux系统下C++ 代码模拟实现)
12 0
|
15天前
|
运维 Serverless Go
Serverless 应用引擎产品使用之在阿里云函数计算中c++模板,将编译好的C++程序放进去部署如何解决
阿里云Serverless 应用引擎(SAE)提供了完整的微服务应用生命周期管理能力,包括应用部署、服务治理、开发运维、资源管理等功能,并通过扩展功能支持多环境管理、API Gateway、事件驱动等高级应用场景,帮助企业快速构建、部署、运维和扩展微服务架构,实现Serverless化的应用部署与运维模式。以下是对SAE产品使用合集的概述,包括应用管理、服务治理、开发运维、资源管理等方面。
12 1