반응형
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
위 링크에 있는 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 |