IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 开发工具 -> 学习open62541 --- [55] 使用VSCode开发(配合CMake Tools) -> 正文阅读

[开发工具]学习open62541 --- [55] 使用VSCode开发(配合CMake Tools)

本文讲述如何使用VSCode来开发open62541程序,配合CMake Tools可以让开发更加方便。

程序运行在Linux虚拟机里,使用VSCode的RemoteSSH进行连接。也可以在本地运行,需要在本地安装编译环境等东西。


一 使用RemoteSSH

请参考这篇文章


二 安装CMake Tools

远程连接Linux主机成功后,在扩展里搜索cmake,找到如下的CMake Tools进行安装,
在这里插入图片描述
需要注意的是这个CMake Tools是安装在远程环境里的。


三 创建工程

VSCode连接OK后,可以使用VSCode的终端进行操作,非常方便(快捷键是Ctrl+Shift+`)。

创建工程目录simple_test并cd进入,
在这里插入图片描述
使用git下载open62541,这里下载的是当前最新的release版本,

git clone -b v1.2.2 https://github.com/open62541/open62541.git

在这里插入图片描述
在simple_test目录下创建src目录、build目录和CMakeLists.txt,并在src目录下创建main.c,
在这里插入图片描述
最后整体工程如下,
在这里插入图片描述
创建好后,使用VSCode的File->Open Foler来打开simple_test目录,
在这里插入图片描述
PS: 打开过程中需要重新输入远程server的密码。


四 配置工程

首先选择一个kit,即编译环境,按Ctrl+Shift+p打开命令面板,输入cmake kit,选择“Select a kit”,
在这里插入图片描述
会自动搜索系统中可用的编译环境,这里选择GCC 8.3.0,本系统里也只有这一个
在这里插入图片描述
选好之后会在Output下打印一些信息,表示加载kit成功
在这里插入图片描述
OK之后,然后选择生成Debug还是Release版本,按Ctrl+Shift+p打开命令面板,输入"cmake var",选择“Select Variant”,
在这里插入图片描述
在弹出的界面里根据需要进行选择,
在这里插入图片描述
这里选择生成Release版本,如果没有执行这个命令,默认会生成Debug版本。


五 运行

首先,编写src/main.c,

#include <signal.h>
#include "open62541/server.h"
#include "open62541/server_config_default.h"

UA_Boolean running = true;
void signalHandler(int sig) {
    running = false;
}

int main(void)
{
    signal(SIGINT, signalHandler); /* catch ctrl-c */

    /* Create a server listening on port 4840 */
    UA_Server *server = UA_Server_new();
    UA_ServerConfig_setDefault(UA_Server_getConfig(server));

    /* Run the server loop */
    UA_StatusCode status = UA_Server_run(server, &running);

    UA_Server_delete(server);
    return status;
}

然后编写simple_test/CMakeLists.txt,内容如下,

cmake_minimum_required(VERSION 3.5)

project(demo)

# compile open62541
add_subdirectory(open62541)

add_executable(main src/main.c)

# link libopen62541.a
target_link_libraries(main open62541)

以上内容会指示先去编译open62541,然后再去编译main.c。

在保存CMakeLists.txt时,CMake Tools会自动配置工程目录,
在这里插入图片描述
等配置OK后,按Ctrl+Shift+p打开命令面板,输入"cmake build",然后执行Build,或者直接按F7
在这里插入图片描述
Build结束后,可以在build目录下看到生成的main可执行程序,
在这里插入图片描述
运行一下,没问题
在这里插入图片描述


六 配置CMakeLists.txt提供的选项

在之前的系列文章中,我们都是开启了open62541源码里提供的UA_ENABLE_AMALGAMATION,最后使用open62541.h,使用CMake Tools如何操作呢?

按Ctrl+Shift+p打开命令面板,输入"cmake edit",选择第二项,带UI的,
在这里插入图片描述
打开后显示如下,
在这里插入图片描述

在搜索框里输入AMA,
在这里插入图片描述
或者往下拉自己肉眼查找,
在这里插入图片描述

勾选,然后保存,会自动进行配置,配置OK后按F7去重新Build,此时会报错,
在这里插入图片描述
因为开启了UA_ENABLE_AMALGAMATION选项,所以必须使用open62541.h,这样就要修改下main.c,

#include <signal.h>
#include "open62541.h"

UA_Boolean running = true;
void signalHandler(int sig) {
    running = false;
}

int main(void)
{
    signal(SIGINT, signalHandler); /* catch ctrl-c */

    /* Create a server listening on port 4840 */
    UA_Server *server = UA_Server_new();
    UA_ServerConfig_setDefault(UA_Server_getConfig(server));

    /* Run the server loop */
    UA_StatusCode status = UA_Server_run(server, &running);

    UA_Server_delete(server);
    return status;
}

再按F7去重新Build,如下,这次就成功了。
在这里插入图片描述

同样可以看到,CMake Cache Editor还可以编辑很多其他提供的选项,如历史数据,加密等,使用起来非常方便。
在这里插入图片描述

如果不想使用命令面板来操作,可以点击VSCode左边的CMake按钮,
在这里插入图片描述
这里有很多按钮可以直接点击,
在这里插入图片描述
点击右侧的…,可以看到还有其它的操作,
在这里插入图片描述
VSCode还在最底下的工具栏里提供了Build按钮,点击即可进行Build,同时还显示了当前使用的GCC版本,即一开始选择的kit,非常贴心,
在这里插入图片描述


七 总结

本文讲述了如何使用VSCode来开发open62541程序,整个过程都是使用VSCode(配合CMake Tools),没有在虚拟机里进行任何直接操作,也无需在虚拟机里打开终端,非常便捷。

  开发工具 最新文章
Postman接口测试之Mock快速入门
ASCII码空格替换查表_最全ASCII码对照表0-2
如何使用 ssh 建立 socks 代理
Typora配合PicGo阿里云图床配置
SoapUI、Jmeter、Postman三种接口测试工具的
github用相对路径显示图片_GitHub 中 readm
Windows编译g2o及其g2o viewer
解决jupyter notebook无法连接/ jupyter连接
Git恢复到之前版本
VScode常用快捷键
上一篇文章      下一篇文章      查看所有文章
加:2021-10-12 23:39:18  更:2021-10-12 23:39:56 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/16 0:41:10-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码