-
Notifications
You must be signed in to change notification settings - Fork 26
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Undefined references when linking MicroROS with an SMT32CubeMX project #309
Comments
This is how the linker is invoked from the CMake-generated Ninja build files:
|
Describe the bug
I am trying to integrate MicroROS in an existing STM32CubeMX CMake project. Linking the final binary fails with errors about unresolved references in librmw_microxrcedds.a to symbols in Micro XRCE-DDS Client and to symbols in Micro XRCE-DDS typesupport:
Everything, including the main project, is a colcon package built with Ninja. The project layout is:
The default task in main.c initializes MicroROS, calls into application packages, which are built as static libraries, to initialize node(s) etc., and then calls
rclc_executor_spin_some()
in a loop.The project is built with
colcon build --packages-up-to cubemx-microros-cmake --packages-ignore-regex=".*_cpp" --metas ./colcon.meta --merge-install --paths . --base-paths ./MicroROS ./App --cmake-args -G Ninja --no-warn-unused-cli -DCMAKE_POSITION_INDEPENDENT_CODE=OFF -DTHIRDPARTY=ON -DBUILD_SHARED_LIBS=OFF -DBUILD_TESTING=OFF -DCMAKE_BUILD_TYPE=Debug -DCMAKE_TOOLCHAIN_FILE="$(pwd)/cmake/gcc-arm-none-eabi.cmake"
Relevant parts of CMakeLists.txt:
Application package(s):
Main CMakeLists.txt:
I also tried to make the top level project an
ament_cmake_ros
package usingament_target_dependencies()
, to no avail.Expected behavior:
Linking the binary works without errors, all required MicroROS libraries are passed to the linker in the correct order.
System information:
The text was updated successfully, but these errors were encountered: