下面介绍如何根据idl文件生成工程
一、idl文件介绍
OMG IDL(Object Management Group Interface Definition Language)是一个由对象管理组织(Object Management Group, OMG)定义的,平台无关和语言无关的接口定义语言。它主要用于描述软件组件或对象提供的接口的语法和语义。
二、安装jdk
我用的版本是jdk17.0.12,下载链接如下:
https://download.oracle.com/java/17/archive/jdk-17.0.12_windows-x64_bin.msi
安装和配置环境变量的过程这里不赘述
三、使用fastddsgen生成C++代码
打开Developer Command Prompt for VS 2019,运行如下命令,生成完整例程:
fastddsgen -example CMake HelloWorld.idl
其中HelloWorld.idl内容如下:
struct HelloWorld
{
unsigned long index;
string message;
};
生成文件如下:
CMakeLists.txt
HelloWorld.cxx
HelloWorld.h
HelloWorldPublisher.cxx
HelloWorldPublisher.h
HelloWorldPubSubMain.cxx
HelloWorldPubSubTypes.cxx
HelloWorldPubSubTypes.h
HelloWorldSubscriber.cxx
HelloWorldSubscriber.h
也可以运行如下命令:
fastddsgen HelloWorld.idl
生成如下文件,其它文件自己手动添加:
HelloWorld.cxx
HelloWorld.h
HelloWorldPubSubTypes.cxx
HelloWorldPubSubTypes.h
四、修改CMakeLists.txt文件
cmake_minimum_required(VERSION 2.8.12)改为
cmake_minimum_required(VERSION 3.5)
否则会提示如下错误:
CMake Error at CMakeLists.txt:2 (cmake_minimum_required):
Compatibility with CMake < 3.5 has been removed from CMake.
五、生成VS解决方案文件
参考Fast-DDS开发入门 一-优快云博客,这里不赘述
六、编译
生成解决方案
七、运行
打开两个命令提示符窗口,分别运行HelloWorld.exe publisher和HelloWorld.exe subscriber
结果如下图所示