Knowhow/C, C++, CMake

TBB 팁

침닦는수건 2023. 9. 25. 22:25
반응형

1) TBB는 install 하고 나서 CMakeLists.txt 내에 find_package(TBB REQUIRED)만 추가해준다면 못 찾는 경우가 빈번함. 아래에 적힌 2개의 문장처럼 뭔 오류인지 모르겠는 말이 계속 나온다면 TBB를 못찾고 있는게 맞다. 

undefined reference to `tbb::interface7::internal::task_arena_base~~~

tbb::interface9::global_control::global_control(tbb::interface9::global_control::parameter, unsigned long) ~~~

해결법은 미리 cmake되어서 모듈화되어있는 TBB를 연결해주는 방법이다. 

 

https://github.com/justusc/FindTBB

 

GitHub - justusc/FindTBB: CMake find module for Intel Threading Building Blocks

CMake find module for Intel Threading Building Blocks - GitHub - justusc/FindTBB: CMake find module for Intel Threading Building Blocks

github.com

 

위 링크에 있는 FindTBB.cmake 파일을 다운받은 뒤, ${PROJECT_SOURCE_DIR}/cmake_modules 폴더 안에 넣어둔다. (경로는 사실 달라도 됨. 근데 그냥 이렇게 정리하는게 베스트)

 

그 다음 CMakeLists.txt 내부에 find_package(TBB REQUIRED) 해주기 전에 다음 문장을 추가해준다.

LIST(APPEND CMAKE_MODULE_PATH ${PROJECT_SOURCE_DIR}/cmake_modules)
find_package(TBB REQUIRED)

이렇게 적어주면 Cmake 시 install되어 있는 TBB를 알아서 이렇게 저렇게 시도하면서 결국 찾아내준다. 

반응형

'Knowhow > C, C++, CMake' 카테고리의 다른 글

CMakeLists.txt 팩토링  (0) 2024.01.30
STL vector 팁들  (0) 2023.09.27
Boost serialization 팁들  (0) 2023.09.25
Boost serialization  (0) 2023.09.25
CMake 백과사전  (0) 2023.09.21