ubuntu编译opendds开发
环境准备
1.github下载发布的opendds的linux版本;
2.下载对应 tao+ace版本;
3.解压
配置环境变量
export ACE_ROOT=/home/workspace/opendds/ACE_wrappers
export TAO_ROOT=$ACE_ROOT/TAO
export DDS_ROOT=/home/workspace/opendds/DDS
export PATH=$ACE_ROOT/bin:$DDS_ROOT/bin:$PATH
export LD_LIBRARY_PATH=$ACE_ROOT/lib:$DDS_ROOT/lib:$LD_LIBRARY_PATH
export PERL5LIB=$DDS_ROOT/bin/PerlDDS
在/etc/profile文件中添加。
准备编译
1.新建 $ACE_ROOT/ace/config.h, 内容如下:
#include “ace/config-linux.h”
有点类似windows下编译
2.新建$ACE_ROOT/include/makeinclude/platform_macros.GNU, 内容如下:
include $(ACE_ROOT)/include/makeinclude/platform_linux.GNU
配置完以上文件之后,可以进行编译:
编译次序为: ACE -> TAO -> OpenDDS
编译ACE和TAO时,使用
make clean
make
编译opendds时,先配置
./configure
然后编译执行
make -j$(nproc)
source setenv.sh
完成以后,执行
cd DevGuideExamples/DCPS/Messenger
./run_test.pl
测试是否成功。
opendds开发
c++库开发
和windows差不多,只是工具有变化,需要准备idl文件,MWC和Mpc文件。
文件和windows一样,新增的MWC文件:
workspace {
// the -relative and -include cmdlines make it so this workspace
// does not have to be in the $DDS_ROOT directory tree.
// tell MPC to substitute our DDS_ROOT environment variables for relative paths
cmdline += -relative DDS_ROOT=$DDS_ROOT
// tell the projects where to find the DDS base projects (*.mpb)
cmdline += -include $DDS_ROOT/MPC/config
}。
和windows平台一样,需要有一个对外导出的接口,库的编译没有对外导出,所以需要专门的接口方法导出。
准备好其它文件以后,在目录中如下命令:
$ACE_ROOT/bin/mwc.pl -type make
然后执行make命令生成.so文件。
C#调用库开发
1.安装.netCore环境
网上很多不说了。
2.安装vscode.
网上很多不说了。
3.封装调用接口
这里windows一样,唯一尴尬的是,委托回调异常。
windows平台下,直接订阅时注册一个委托,有订阅的数据时直接回调,在windows下没有问题,但是在ubuntu下,方法异常,不能回调,一旦调用对象回调就报错,试了没有解决。换了一种方法,c++接收到数据以后缓存,然后提供接口,外部通过接口获取缓存里面的数据即可。
1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长!
2. 分享目的仅供大家学习和交流,您必须在下载后24小时内删除!
3. 不得使用于非法商业用途,不得违反国家法律。否则后果自负!
4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解!
5. 如有链接无法下载、失效或广告,请联系管理员处理!
6. 如遇到加密压缩包,请使用WINRAR解压,如遇到无法解压的请联系管理员!
7. 本站有不少源码未能详细测试(解密),不能分辨部分源码是病毒还是误报,所以没有进行任何修改,大家使用前请进行甄别!
66源码网 » ubuntu编译opendds开发