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/
相关文章
|
4月前
|
网络协议 安全 Linux
Linux C/C++之IO多路复用(select)
这篇文章主要介绍了TCP的三次握手和四次挥手过程,TCP与UDP的区别,以及如何使用select函数实现IO多路复用,包括服务器监听多个客户端连接和简单聊天室场景的应用示例。
116 0
|
4月前
|
存储 Linux C语言
Linux C/C++之IO多路复用(aio)
这篇文章介绍了Linux中IO多路复用技术epoll和异步IO技术aio的区别、执行过程、编程模型以及具体的编程实现方式。
173 1
Linux C/C++之IO多路复用(aio)
|
9天前
|
消息中间件 Linux C++
c++ linux通过实现独立进程之间的通信和传递字符串 demo
的进程间通信机制,适用于父子进程之间的数据传输。希望本文能帮助您更好地理解和应用Linux管道,提升开发效率。 在实际开发中,除了管道,还可以根据具体需求选择消息队列、共享内存、套接字等其他进程间通信方
40 16
|
3月前
|
监控 Ubuntu Linux
使用VSCode通过SSH远程登录阿里云Linux服务器异常崩溃
通过 VSCode 的 Remote - SSH 插件远程连接阿里云 Ubuntu 22 服务器时,会因高 CPU 使用率导致连接断开。经排查发现,VSCode 连接根目录 ".." 时会频繁调用"rg"(ripgrep)进行文件搜索,导致 CPU 负载过高。解决方法是将连接目录改为"root"(或其他具体的路径),避免不必要的文件检索,从而恢复正常连接。
|
4月前
|
Ubuntu Linux 编译器
Linux/Ubuntu下使用VS Code配置C/C++项目环境调用OpenCV
通过以上步骤,您已经成功在Ubuntu系统下的VS Code中配置了C/C++项目环境,并能够调用OpenCV库进行开发。请确保每一步都按照您的系统实际情况进行适当调整。
1025 3
|
4月前
|
运维 Java Linux
【运维基础知识】Linux服务器下手写启停Java程序脚本start.sh stop.sh及详细说明
### 启动Java程序脚本 `start.sh` 此脚本用于启动一个Java程序,设置JVM字符集为GBK,最大堆内存为3000M,并将程序的日志输出到`output.log`文件中,同时在后台运行。 ### 停止Java程序脚本 `stop.sh` 此脚本用于停止指定名称的服务(如`QuoteServer`),通过查找并终止该服务的Java进程,输出操作结果以确认是否成功。
159 1
|
4月前
|
资源调度 Linux 调度
Linux C/C++之线程基础
这篇文章详细介绍了Linux下C/C++线程的基本概念、创建和管理线程的方法,以及线程同步的各种机制,并通过实例代码展示了线程同步技术的应用。
61 0
Linux C/C++之线程基础
|
4月前
|
Linux C++
Linux C/C++之IO多路复用(poll,epoll)
这篇文章详细介绍了Linux下C/C++编程中IO多路复用的两种机制:poll和epoll,包括它们的比较、编程模型、函数原型以及如何使用这些机制实现服务器端和客户端之间的多个连接。
98 0
Linux C/C++之IO多路复用(poll,epoll)
|
4月前
|
网络协议 Linux 网络性能优化
Linux C/C++之TCP / UDP通信
这篇文章详细介绍了Linux下C/C++语言实现TCP和UDP通信的方法,包括网络基础、通信模型、编程示例以及TCP和UDP的优缺点比较。
101 0
Linux C/C++之TCP / UDP通信
|
4月前
|
消息中间件 Linux API
Linux c/c++之IPC进程间通信
这篇文章详细介绍了Linux下C/C++进程间通信(IPC)的三种主要技术:共享内存、消息队列和信号量,包括它们的编程模型、API函数原型、优势与缺点,并通过示例代码展示了它们的创建、使用和管理方法。
70 0
Linux c/c++之IPC进程间通信