FastDDS 交叉编译
版本依赖依赖版本仓库memoryv0.7-3https://github.com/foonathan/memory.gitFast-CDRv1.1.1https://github.com/eProsima/Fast-CDR.gitFastDDSv2.4.16https://github.com/eProsima/Fast-DDS.git编辑toolchain.cmakeset(CMAKE_SYSTEM_NAME Linux) set(CMAKE_SYSTEM_PROCESSOR aarch64) set(CMAKE_C_COMPILER aarch64-linux-gnu-gcc) set(CMAKE_CXX_COMPILER aarch64-linux-gnu-g) # 避免 try_run 执行失败 set(CMAKE_TRY_COMPILE_TARGET_TYPE STATIC_LIBRARY) # 可选指定 sysroot如果你有目标 rootfs # set(CMAKE_SYSROOT /opt/aarch64-sysroot) set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER) set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY) set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY) set(THREADS_PREFER_PTHREAD_FLAG ON) set(CMAKE_THREAD_LIBS_INIT -lpthread) set(CMAKE_HAVE_THREADS_LIBRARY 1) set(CMAKE_USE_PTHREADS_INIT 1)交叉编译交叉编译memory$ cmake..-DCMAKE_TOOLCHAIN_FILE../../toolchain-aarch64.cmake-DCMAKE_INSTALL_PREFIX../../install-DFOONATHAN_MEMORY_BUILD_EXAMPLESOFF-DFOONATHAN_MEMORY_BUILD_TESTSOFF $make-j4$makeinstall交叉编译Fast-CDR$ cmake..-DCMAKE_TOOLCHAIN_FILE../../toolchain-aarch64.cmake-DCMAKE_INSTALL_PREFIX../../install-DCMAKE_PREFIX_PATH../../install-DBUILD_TESTINGOFF $make-j4$makeinstall交叉编译Fast-DDS$ cmake..-DCMAKE_TOOLCHAIN_FILE../../toolchain-aarch64.cmake-DCMAKE_INSTALL_PREFIX../../install-DCMAKE_PREFIX_PATH../../install-DTHIRDPARTYON-DBUILD_SHARED_LIBSON-DBUILD_TESTINGOFF-DFASTDDS_STATISTICSOFF-DCOMPILE_EXAMPLESON-DSHM_TRANSPORT_DEFAULTON-DSECURITYOFF $make-j4$makeinstallx86_64编译memory$ cmake..-DCMAKE_INSTALL_PREFIX../../install-DFOONATHAN_MEMORY_BUILD_EXAMPLESOFF-DFOONATHAN_MEMORY_BUILD_TESTSOFF $make-j4$makeinstall编译Fast-CDR$ cmake..-DCMAKE_INSTALL_PREFIX../../install-DCMAKE_PREFIX_PATH../../install-DBUILD_TESTINGOFF $make-j4$makeinstall编译Fast-DDS$ cmake..-DCMAKE_INSTALL_PREFIX../../install-DCMAKE_PREFIX_PATH../../install-DTHIRDPARTYON-DBUILD_SHARED_LIBSON-DBUILD_TESTINGOFF-DFASTDDS_STATISTICSOFF-DCOMPILE_EXAMPLESON-DSHM_TRANSPORT_DEFAULTON-DSECURITYOFF $make-j4$makeinstall测试subscriber$~/workspace/install/examples/cpp/dds/HelloWorldExample/bin$ ./DDSHelloWorldExample subscriber Starting Subscriber running. Please press enter to stop the Subscriber Subscriber matched. Message HelloWorld1RECEIVED Message HelloWorld2RECEIVED Message HelloWorld3RECEIVED Message HelloWorld4RECEIVED Message HelloWorld5RECEIVED Message HelloWorld6RECEIVED Message HelloWorld7RECEIVED Message HelloWorld8RECEIVED Message HelloWorld9RECEIVED Message HelloWorld10RECEIVED Subscriber unmatched.publisher$ ~/workspace/install/examples/cpp/dds/HelloWorldExample/bin$ ./DDSHelloWorldExample publisher Starting Publisher running10samples. Publisher matched. Message: HelloWorld with index:1SENT Message: HelloWorld with index:2SENT Message: HelloWorld with index:3SENT Message: HelloWorld with index:4SENT Message: HelloWorld with index:5SENT Message: HelloWorld with index:6SENT Message: HelloWorld with index:7SENT Message: HelloWorld with index:8SENT Message: HelloWorld with index:9SENT Message: HelloWorld with index:10SENTHelloWorldExampleSharedMempublisher 和 subscriber 的对象关系图时序图