揭阳市网站建设,外贸流程有哪些,建立一个网站商城需要多久时间,网站服务器的工作原理目录 Docker环境Fast DDS构建运行运行原有demo编译运行 本文主要记录Fast DDS docker环境搭建和examples代码运行 Docker环境
Fast DDS的docker环境可以直接在官网下载#xff0c;如果自己要重新做一个#xff0c;首先需要从Docker Hub上下载系统的docker镜像#xff0c;由… 目录 Docker环境Fast DDS构建运行运行原有demo编译运行 本文主要记录Fast DDS docker环境搭建和examples代码运行 Docker环境
Fast DDS的docker环境可以直接在官网下载如果自己要重新做一个首先需要从Docker Hub上下载系统的docker镜像由于众所周知的原因普通方式是拿不到这个镜像的所以推荐使用Fast DDS官方网站提供的docker镜像。 这是一个比较完整的Fast DDS Docker镜像也可以在这里选择其他的。 下面以推荐的镜像搭建开发调试环境。
下载ubuntu-fastdds-suite_v2.14.0.tar镜像加载镜像docker load ubuntu-fastdds-suite_v2.14.0.tar通过这一步镜像已经加载到系统中如下所示
hellogf:~/data/ilearning/docker/fastdds-suite$ docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
fastdds_ilearning latest 114c7bc7e4e4 2 days ago 1.94GB
ubuntu-fastdds-suite v2.14.0 79ac6f93292f 13 days ago 1.83GB
运行容器。一个镜像可以有多个容器可以通过以下命令启动一个新的容器
docker run -it -d --name sss ubuntu-fastdds-suite:v2.14.0 /bin/bash其中-d为后台运行–name指定了容器的名称。后续可以通过这个名称操作该容器。完成后通过docker ps -a可以看到如下内容
hellogf:~/data/ilearning/docker/fastdds-suite$ docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
19c4527b0e3d ubuntu-fastdds-suite:v2.14.0 /bin/bash /root/ent… 3 seconds ago Up 3 seconds sss进入docker容器通过命令 docker exec -it sss /bin/bash。完成这一步操作后可以进入容器中。此时可以发现该镜像的容器中Fast DDS相关的so头文件等都已经安装好
root19c4527b0e3d:/usr/local/eprosima# ls
COLCON_IGNORE cpp_utils ddsrecorder_yaml fastdds_python fastddsspy_tool local_setup.zsh setup.zsh
ShapesDemo dds-suite.repos ddsreplayer_tool fastdds_python_examples fastddsspy_yaml plotjuggler
_local_setup_util_ps1.py ddspipe_core ddsrouter_core fastdds_qos_profiles_manager_cli fastrtps py_utils
_local_setup_util_sh.py ddspipe_participants ddsrouter_tool fastdds_qos_profiles_manager_lib foonathan_memory_vendor resources
cmake_utils ddspipe_yaml ddsrouter_yaml fastdds_statistics_backend local_setup.bash setup.bash
colcon.meta ddsrecorder_participants fastcdr fastdds_visualizer_plugin local_setup.ps1 setup.ps1
controller_tool ddsrecorder_tool fastdds_monitor fastddsspy_participants local_setup.sh setup.sh所以这里省了很多需要自己要搞的事情如编译Fast CDRasiotinyXML等第三方库 5. 修改镜像并导出为新的镜像有时候镜像中的内容不满足我们的需要比如缺少开发相关的软件如新建文件夹安装开发工具等
首先在docker容器中执行自己需要的操作如创建一个文件夹作为工作目录如/FastDDS还需要安装一些常用工具如cmakegitvim等这些可以通过apt-get install xx来安装。exit命令退出环境将这个容器提交为新容器docker commit container_name/container_id new_image_name:tag此时新的镜像也生成了
zee001-wgf:~/data/ilearning/docker/fastdds-suite$ docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
my_new_dds_docker 0.0.0.1 19d885b3aaa3 3 minutes ago 1.83GB
ubuntu-fastdds-suite v2.14.0 79ac6f93292f 13 days ago 1.83GB保存这个新的镜像docker save new-image-name:tag new-image.tar。如 docker save my_new_dds_docker:0.0.0.1my_new_dds.tar
虽然做了很多事但要修改和调试Fast DDS代码还需要和本地做同步这时候需要将docker的容器和本地挂载。这在执行第三步时通过-v命令指定目录挂载 docker run -it -v /home/user/data/ilearning/fastdds:/FastDDS /bin/bash
通过以上步骤就可以创建好一个完整的Fast DDS docker镜像环境。
Fast DDS构建运行
运行原有demo
以上步骤已经完成了Fast DDS编译环境的搭建可以直接通过已存在的命令goToExamples进入demo运行
root1d4740174553:/# goToExamples
root1d4740174553:/usr/local/eprosima/fastrtps/examples/cpp# tree
.
|-- dds
| |-- AdvancedConfigurationExample
| | -- bin
| | -- AdvancedConfigurationExample
| |-- BasicConfigurationExample
| | -- bin
| | -- BasicConfigurationExample
| |-- Configurability
| | -- bin
| | |-- DDSConfigurabilityPublisher
| | -- DDSConfigurabilitySubscriber
| |-- ContentFilteredTopicExample
| | -- bin
| | -- DDSContentFilteredTopicExample
| |-- CustomListenerExample
...编译运行
进入fastrtpscmake命令
cmake -H. -Bbuild # 创建build目录
cmkae --build ./build编译后的二进制文件存放于build目录下此时运行example会链接到已经安装好的dds的so需要重新设置到自己编译的so export LD_LIBRARY_PATH/FastDDS/fastrtps/build/src/cpp:$LD_LIBRARY_PATH