Skip to content
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

My Cmake can't find TBB::tbb and TBB::tbbmalloc #1277

Open
tanmayd26 opened this issue Dec 4, 2023 · 8 comments
Open

My Cmake can't find TBB::tbb and TBB::tbbmalloc #1277

tanmayd26 opened this issue Dec 4, 2023 · 8 comments

Comments

@tanmayd26
Copy link

`CMake Error at autorally/autorally_core/src/StateEstimator/CMakeLists.txt:14 (add_executable):
Target "StateEstimator" links to target "TBB::tbb" but the target was not
found. Perhaps a find_package() call is missing for an IMPORTED target, or
an ALIAS target is missing?

CMake Error at autorally/autorally_core/src/StateEstimator/CMakeLists.txt:14 (add_executable):
Target "StateEstimator" links to target "TBB::tbbmalloc" but the target was
not found. Perhaps a find_package() call is missing for an IMPORTED
target, or an ALIAS target is missing?
`

I have it installed here:
/usr/lib/x86_64-linux-gnu/libtbbmalloc_proxy.so
/usr/lib/x86_64-linux-gnu/libtbbmalloc.so
/usr/lib/x86_64-linux-gnu/libtbb.so.2
/usr/lib/x86_64-linux-gnu/libtbbmalloc.so.2
/usr/lib/x86_64-linux-gnu/libtbbmalloc_proxy.so.2
/usr/lib/x86_64-linux-gnu/libtbb.so

`
libtbbmalloc_proxy.so.2 (libc6,x86-64) => /lib/x86_64-linux-gnu/libtbbmalloc_proxy.so.2
libtbbmalloc_proxy.so (libc6,x86-64) => /lib/x86_64-linux-gnu/libtbbmalloc_proxy.so
libtbbmalloc.so.2 (libc6,x86-64) => /lib/x86_64-linux-gnu/libtbbmalloc.so.2
libtbbmalloc.so (libc6,x86-64) => /lib/x86_64-linux-gnu/libtbbmalloc.so
libtbb.so.2 (libc6,x86-64) => /lib/x86_64-linux-gnu/libtbb.so.2
libtbb.so (libc6,x86-64) => /lib/x86_64-linux-gnu/libtbb.so

`

Can anyone help been struggling to get a working solution.

@isaevil
Copy link
Contributor

isaevil commented Dec 5, 2023

@tanmayd26 do you have reproducer steps? I am mostly interested in CMakelists.txt. Did you use find_package(TBB) as error message suggested?

@tanmayd26
Copy link
Author

Yes here,

find_package(Eigen3 REQUIRED)
find_package(GeographicLib REQUIRED)
find_package (Boost REQUIRED COMPONENTS system filesystem thread chrono date_time atomic serialization regex timer)
include_directories(SYSTEM ${Boost_LIBRARY_DIRS})

include_directories(include ${catkin_INCLUDE_DIRS})
include_directories(SYSTEM ${EIGEN3_INCLUDE_DIR})

find_package(GTSAM)
if(GTSAM_FOUND)
  find_package(TBB REQUIRED)
  include_directories(SYSTEM ${GTSAM_INCLUDE_DIR} "/usr/local/include" ${Boost_INCLUDE_DIRS}) 

  add_executable(StateEstimator StateEstimator.cpp)
message(==========${GeographicLib_LIBRARY_DIRS}/${GeographicLib_LIBRARIES})
  target_link_libraries(StateEstimator ${catkin_LIBRARIES} ${ROS_LIBRARIES} gtsam ${GeographicLib_LIBRARY_DIRS}/libGeographic.so ${TBB_LIBRARIES} ar_diagnostics ${Boost_LIBRARIES})
  add_dependencies(StateEstimator autorally_msgs_gencpp)

  install(TARGETS StateEstimator
          ARCHIVE DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION}
          LIBRARY DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION}
          RUNTIME DESTINATION ${CATKIN_PACKAGE_BIN_DESTINATION})
endif()

@tanmayd26
Copy link
Author

tanmayd26 commented Dec 5, 2023

I got some extra analysis done. I added a message to print the location and yes it knows that tbb is here in this location.

-- TBB_LIBRARIES: /usr/lib/x86_64-linux-gnu/libtbb.so;/usr/lib/x86_64-linux-gnu/libtbbmalloc.so;/usr/lib/x86_64-linux-gnu/libtbb.so;/usr/lib/x86_64-linux-gnu/libtbbmalloc.so
==========/usr/local/lib/GeographicLib
CMake Warning at autorally/autorally_core/src/CameraAutoBalance/CMakeLists.txt:23 (message):
  Could not find FlyCapture library.  Will not build CameraAutoBalance for
  Point Grey cameras


CMake Warning at autorally/autorally_core/src/CameraAutoBalance/CMakeLists.txt:44 (message):
  Could not find Spinnaker library.  Will not build CameraAutoBalance for
  FLIR cameras


-- +++ processing catkin package: 'autorally_control'
-- ==> add_subdirectory(autorally/autorally_control)
-- Using these message generators: gencpp;geneus;genlisp;gennodejs;genpy
-- Found Boost: /usr/lib/x86_64-linux-gnu/cmake/Boost-1.71.0/BoostConfig.cmake (found suitable version "1.71.0", minimum required is "1.55.0")  
-- Installing devel-space wrapper /home/tanmay/catkin_ws/src/autorally/autorally_control/src/gpsWaypoint/GenerateWaypoints to /home/tanmay/catkin_ws/devel/lib/autorally_control
-- Found CUDA: /usr (found version "10.1") 
-- The CUDA compiler identification is NVIDIA 10.1.243
-- Check for working CUDA compiler: /usr/bin/nvcc
-- Check for working CUDA compiler: /usr/bin/nvcc -- works
-- Detecting CUDA compiler ABI info
-- Detecting CUDA compiler ABI info - done
-- Configuring done
CMake Error at autorally/autorally_core/src/StateEstimator/CMakeLists.txt:17 (add_executable):
  Target "StateEstimator" links to target "TBB::tbb" but the target was not
  found.  Perhaps a find_package() call is missing for an IMPORTED target, or
  an ALIAS target is missing?


CMake Error at autorally/autorally_core/src/StateEstimator/CMakeLists.txt:17 (add_executable):
  Target "StateEstimator" links to target "TBB::tbbmalloc" but the target was
  not found.  Perhaps a find_package() call is missing for an IMPORTED
  target, or an ALIAS target is missing?


-- Generating done
CMake Generate step failed.  Build files cannot be regenerated correctly.

@isaevil
Copy link
Contributor

isaevil commented Dec 6, 2023

@tanmayd26 that is interesting. Could you please provide more details of your environment: TBB package used for installation and OS? It seems like you are using TBB 2020 based on the name of libtbb.so.2, am I right?
Could you also attach clean cmake --debug-find <your project folder> output?

@tanmayd26
Copy link
Author

tanmayd26 commented Dec 6, 2023

CMake Error: The source directory "/home/tanmay/--debug-find" does not exist.
Specify --help for usage, or press the help button on the CMake GUI.

I ran this:
cmake --debug-find catkin_ws/src/autorally/

@isaevil
Copy link
Contributor

isaevil commented Dec 6, 2023

@tanmayd26 you can use CMAKE_FIND_DEBUG_MODE instead (https://cmake.org/cmake/help/latest/variable/CMAKE_FIND_DEBUG_MODE.html).

@tanmayd26
Copy link
Author

(my_ros_env) tanmay@tanmay-lab-ubuntu:~/catkin_ws/build$ cmake --debug-find /home/tanmay/catkin_ws/src
-- Using CATKIN_DEVEL_PREFIX: /home/tanmay/catkin_ws/devel
-- Using CMAKE_PREFIX_PATH: /opt/ros/noetic
-- This workspace overlays: /opt/ros/noetic
-- Found PythonInterp: /usr/bin/python3 (found suitable version "3.8.10", minimum required is "3") 
-- Using PYTHON_EXECUTABLE: /usr/bin/python3
-- Using Debian Python package layout
-- Using empy: /usr/lib/python3/dist-packages/em.py
-- Using CATKIN_ENABLE_TESTING: ON
-- Call enable_testing()
-- Using CATKIN_TEST_RESULTS_DIR: /home/tanmay/catkin_ws/build/test_results
-- Forcing gtest/gmock from source, though one was otherwise available.
-- Found gtest sources under '/usr/src/googletest': gtests will be built
-- Found gmock sources under '/usr/src/googletest': gmock will be built
-- Found PythonInterp: /usr/bin/python3 (found version "3.8.10") 
-- Using Python nosetests: /usr/bin/nosetests3
-- catkin 0.8.10
-- BUILD_SHARED_LIBS is on
-- BUILD_SHARED_LIBS is on
-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-- ~~  traversing 13 packages in topological order:
-- ~~  - autorally (metapackage)
-- ~~  - autorally_description
-- ~~  - autorally_gazebo
-- ~~  - pointgrey_camera_description
-- ~~  - statistics_msgs
-- ~~  - image_exposure_msgs
-- ~~  - autorally_msgs
-- ~~  - autorally_util
-- ~~  - imu_3dm_gx4
-- ~~  - wfov_camera_msgs
-- ~~  - pointgrey_camera_driver
-- ~~  - autorally_core
-- ~~  - autorally_control
-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-- +++ processing catkin metapackage: 'autorally'
-- ==> add_subdirectory(autorally/autorally)
-- +++ processing catkin package: 'autorally_description'
-- ==> add_subdirectory(autorally/autorally_description)
-- +++ processing catkin package: 'autorally_gazebo'
-- ==> add_subdirectory(autorally/autorally_gazebo)
-- +++ processing catkin package: 'pointgrey_camera_description'
-- ==> add_subdirectory(pointgrey_camera_driver/pointgrey_camera_description)
-- +++ processing catkin package: 'statistics_msgs'
-- ==> add_subdirectory(pointgrey_camera_driver/statistics_msgs)
-- Using these message generators: gencpp;geneus;genlisp;gennodejs;genpy
-- statistics_msgs: 1 messages, 0 services
-- +++ processing catkin package: 'image_exposure_msgs'
-- ==> add_subdirectory(pointgrey_camera_driver/image_exposure_msgs)
-- Using these message generators: gencpp;geneus;genlisp;gennodejs;genpy
-- image_exposure_msgs: 3 messages, 0 services
-- +++ processing catkin package: 'autorally_msgs'
-- ==> add_subdirectory(autorally/autorally_msgs)
-- Using these message generators: gencpp;geneus;genlisp;gennodejs;genpy
-- Found Boost: /usr/lib/x86_64-linux-gnu/cmake/Boost-1.71.0/BoostConfig.cmake (found version "1.71.0") found components: thread 
-- autorally_msgs: 15 messages, 0 services
-- +++ processing catkin package: 'autorally_util'
-- ==> add_subdirectory(autorally/autorally_util)
-- +++ processing catkin package: 'imu_3dm_gx4'
-- ==> add_subdirectory(imu_3dm_gx4)
-- Using these message generators: gencpp;geneus;genlisp;gennodejs;genpy
-- imu_3dm_gx4: 1 messages, 0 services
-- Found Boost: /usr/lib/x86_64-linux-gnu/cmake/Boost-1.71.0/BoostConfig.cmake (found version "1.71.0")  
-- +++ processing catkin package: 'wfov_camera_msgs'
-- ==> add_subdirectory(pointgrey_camera_driver/wfov_camera_msgs)
-- Using these message generators: gencpp;geneus;genlisp;gennodejs;genpy
-- wfov_camera_msgs: 3 messages, 0 services
-- +++ processing catkin package: 'pointgrey_camera_driver'
-- ==> add_subdirectory(pointgrey_camera_driver/pointgrey_camera_driver)
-- libflycapture found in system library path
-- libflycapture library: /usr/lib/libflycapture.so.2
-- libflycapture copied from: /usr/lib/libflycapture.so.2.13.3.31 into /home/tanmay/catkin_ws/devel/lib/libflycapture.so.2
-- +++ processing catkin package: 'autorally_core'
-- ==> add_subdirectory(autorally/autorally_core)
-- Using these message generators: gencpp;geneus;genlisp;gennodejs;genpy
-- Reading /usr/local/lib/cmake/GeographicLib/geographiclib-config.cmake
-- GeographicLib configuration, version 1.49
--   ${GeographicLib_LIBRARIES} set to shared library
-- Found Boost: /usr/lib/x86_64-linux-gnu/cmake/Boost-1.71.0/BoostConfig.cmake (found version "1.71.0") found components: chrono date_time filesystem regex serialization system thread timer 
-- Found Boost: /usr/lib/x86_64-linux-gnu/cmake/Boost-1.71.0/BoostConfig.cmake (found suitable version "1.71.0", minimum required is "1.65") found components: serialization system filesystem thread program_options date_time timer chrono regex 
-- Found Intel TBB
-- GTSAM include directory:  /usr/local/lib/cmake/GTSAM/../../../include
-- Found Intel TBB
==========/usr/local/lib/GeographicLib
CMake Warning at autorally/autorally_core/src/CameraAutoBalance/CMakeLists.txt:44 (message):
  Could not find Spinnaker library.  Will not build CameraAutoBalance for
  FLIR cameras


-- +++ processing catkin package: 'autorally_control'
-- ==> add_subdirectory(autorally/autorally_control)
-- Using these message generators: gencpp;geneus;genlisp;gennodejs;genpy
-- Found Boost: /usr/lib/x86_64-linux-gnu/cmake/Boost-1.71.0/BoostConfig.cmake (found suitable version "1.71.0", minimum required is "1.55.0")  
-- Installing devel-space wrapper /home/tanmay/catkin_ws/src/autorally/autorally_control/src/gpsWaypoint/GenerateWaypoints to /home/tanmay/catkin_ws/devel/lib/autorally_control
-- Configuring done
CMake Error at autorally/autorally_core/src/StateEstimator/CMakeLists.txt:24 (add_executable):
  Target "StateEstimator" links to target "TBB::tbb" but the target was not
  found.  Perhaps a find_package() call is missing for an IMPORTED target, or
  an ALIAS target is missing?


CMake Error at autorally/autorally_core/src/StateEstimator/CMakeLists.txt:24 (add_executable):
  Target "StateEstimator" links to target "TBB::tbbmalloc" but the target was
  not found.  Perhaps a find_package() call is missing for an IMPORTED
  target, or an ALIAS target is missing?


CMake Warning at autorally/autorally_core/src/CameraAutoBalance/CMakeLists.txt:12 (add_library):
  Cannot generate a safe runtime search path for target
  CameraAutoBalancePtGrey because files in some directories may conflict with
  libraries in implicit directories:

    runtime library [libflycapture.so.2] in /usr/lib may be hidden by files in:
      /home/tanmay/catkin_ws/devel/lib

  Some of these libraries may not be found correctly.


-- Generating done
CMake Generate step failed.  Build files cannot be regenerated correctly.

@isaevil
Copy link
Contributor

isaevil commented Dec 8, 2023

@tanmayd26 it is hard to tell what went wrong. It seems to me that this is an environment issue. Could you provide more details on your environment (TBB package used, OS, etc)?

And could you please rerun your cmake --debug-find command on cleaned build directory because this log you've sent doesn't include search steps of TBB package.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants