【发布时间】:2019-01-08 15:14:39
【问题描述】:
我想构建 TBB 以在另一个 CMake 项目中使用它。我尝试使用makefile(使用VisualStudio 2015 升级)从Github source 构建TBB。由于一个神秘的错误而失败:
LINK : fatal error LNK1181: cannot open input file 'opencv_core300.lib'
这个错误可能来自哪里?
我的第二次尝试是使用另一个 repository 构建 TBB,它允许使用 CMake 构建。此构建生成 tbb.lib、tbb.dll 等文件。 现在我被困在如何合并是在我的其他 cmake 文件中。没有 TBBConfig.cmake 或类似文件。 我的项目的 CMakeLists.txt 如下所示:
cmake_minimum_required(VERSION 3.10)
project(IntrafraktionelleRegistrierung)
find_package(ITK REQUIRED
COMPONENTS
ITKRegistrationCommon
ITKRegistrationMethodsv4
)
include(${ITK_USE_FILE})
set(SRC
${CMAKE_PROJECT_NAME}.cxx
)
if (DEFINED ENV{TBBROOT})
message(STATUS "TBBROOT: $ENV{TBBROOT}")
else()
message(STATUS "TBBROOT not defined!")
endif()
find_package(TBB REQUIRED)
add_executable(${CMAKE_PROJECT_NAME} ${SRC})
target_link_libraries( ${CMAKE_PROJECT_NAME}
${ITK_LIBRARIES}
tbb
)'
TBBROOT 是 tbb 的构建目录。我有的FindTBB.cmake是从here借来的,复制到cmake的modules目录下。
binaries of TBB 的最新版本有一个 CMake 文件夹,里面有 TBBConfig.cmake。我用它来将 TBB 链接到我的项目,但不知何故,我最终得到了一条错误消息:“tbb-NOTFOUND.obj 无法找到”。 (这种方式还在研究中。
有人用这个仓库配置和构建了一个 cmake 项目吗?
【问题讨论】:
-
如果它使用
CMake构建,它应该在构建树中生成TBBConfig.cmake。 -
此错误可能源自何处? 您在 makefile 预期的路径中没有 opencv 库,或者您正在混合32 位和 64 位。
-
您是否将
TBBROOT环境变量设置为指向TBB 项目的构建文件夹?请注意,使用CMake进行配置时,您通常使用不同的文件夹来构建而不是源。 -
if (DEFINED ENV{TBBROOT})你在 ENV 之前缺少了一个 $,它应该是:if (DEFINED $ENV{TBBROOT}) -
我检查了两次:没有创建 TBBConfig.cmake 文件。