【发布时间】:2021-11-15 19:31:24
【问题描述】:
我已下载 tbb 并将其放置在我的存储库目录中:
> tree deps/tbb/ -d
deps/tbb/
├── bin
├── cmake
│ └── templates
├── include
│ ├── serial
│ │ └── tbb
│ └── tbb
│ ├── compat
│ ├── internal
│ └── machine
└── lib
├── ia32
│ └── gcc4.8
└── intel64
└── gcc4.8
在我的CMakeLists.txt 中我尝试过这个:
include_directories("deps/tbb/include")
find_library(TBB_LIB
NAMES
tbbbind_debug
tbbbind
tbb_debug
tbbmalloc_debug
tbbmalloc_proxy_debug
tbbmalloc_proxy
tbbmalloc
tbb_preview_debug
tbb_preview
tbb
HINTS "${CMAKE_PREFIX_PATH}/deps/tbb/lib/intel64/gcc4.8"
)
add_executable(${PROJECT_NAME}
src/main.cpp
)
target_link_libraries(${PROJECT_NAME} PUBLIC ${TBB_LIB})
但使用cmake 构建时,链接器会抛出此错误:
/usr/lib64/gcc/x86_64-suse-linux/7/../../../../x86_64-suse-linux/bin/ld: 找不到-lTBB_LIB-NOTFOUND
collect2: 错误:ld 返回 1 个退出状态
我无法弄清楚缺少什么。谢谢。
更新
这个提交解决了之前的错误:
- HINTS "${CMAKE_PREFIX_PATH}/deps/tbb/lib/intel64/gcc4.8"
+ HINTS "deps/tbb/lib/intel64/gcc4.8"
但是,抛出了新的错误:
对 `tbb::interface7::internal::task_arena_base::internal_current_slot()' 的未定义引用
更新
除了find_library,还有哪些 CMake 工具可以链接到 TBB 共享库?
我尝试了一些 CMake 工具,但我不知道如何正确链接到 TBB *.so 文件!
【问题讨论】: