使用Visual Studio 2015 x64和CMake构建TBB
Building TBB using Visual Studio 2015 x64 and CMake
我想构建TBB,以便在另一个CMake项目中使用它。我尝试使用makefile(使用VisualStudio2015升级)从Github源代码构建TBB。这是由于一个神秘的错误而失败的:
LINK : fatal error LNK1181: cannot open input file 'opencv_core300.lib'
这个错误可能来自哪里?
我的第二次尝试是使用另一个存储库构建TBB,该存储库允许使用CMake进行构建。此生成生成一个tbb.lib、tbb.dll等文件。现在我被困在如何将is合并到我的其他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是从这里借来的,并复制到cmake的modules目录中。
最新版本的TBB二进制文件有一个CMake文件夹,里面有TBBConfig.CMake。我用它将TBB链接到我的项目,但不知何故,我最终出现了一个错误:"找不到TBB-NOTFOUND.obj"。(这种方式仍在调查中。
是否有人使用此存储库来配置和构建cmake项目?
关于CMake相关问题
基本上你有两个选择:
-
将预先构建的TBB二进制文件集成到您的项目中
您可以根据以下示例使用TBB的二进制文件(就像您所做的那样)。调用
find_package(TBB REQUIRED)
后,您将获得格式为TBB::<component>
的TBB目标(例如TBB::tbb
、TBB::tbbmalloc
等)。此外,TBB_IMPORTED_TARGETS
变量将包含所有导入的TBB目标。因此,您需要稍微修改您的
target_link_libraries
:target_link_libraries( ${CMAKE_PROJECT_NAME} ${ITK_LIBRARIES} ${TBB_IMPORTED_TARGETS} )
或
target_link_libraries( ${CMAKE_PROJECT_NAME} ${ITK_LIBRARIES} TBB::tbb )
如果你的项目中只需要
TBB::tbb
组件,你也可以更新你的find_package
:find_package(TBB REQUIRED tbb)
-
将TBB源代码集成到您的项目中
您可以使用
tbb_build
(它是一个在TBB Makefiles上使用GNU Make的CMake包装器),但要在Visual Studio下的Windows上运行它,您需要在您的环境中使用GNU Maker。如果您想集成此TBB(具有CMake支持),可以使用
add_subdirectory(<YOUR-TBB-ROOT>)
(用TBB的实际位置替换<YOUR-TBB-ROOT>
)而不是find_package(TBB REQUIRED)
。
- 用CMake构建C++协议
- 最小的CMake构建为Android
- 在Cmake构建CmakeList.txt中读取/解析XML文件
- 如何使用CPack打包多个cmake构建结果?
- Vcpkg Pango CMake 构建失败缺少头文件
- 使用纯 CMake 构建 SFML 时出现运行时错误
- 在 Linux 上使用 CMake 构建 gRPC C++
- 用cmake构建比特币
- 使用CMAKE构建和安装静态库
- OpenCV cmake构建总是在Windows中抛出错误
- 在Yocto中使用Cmake构建Qt5
- 在OSx:ld上使用CMake构建C++项目:找不到体系结构x86_64的符号
- 使用cmake构建google测试单元测试时出现链接器错误
- 尝试使用 MinGW/CMake 构建 GLFW 示例时未定义的引用
- 如何从 Linux 控制台使用 CMake 构建 Eclipse C++ 项目(没有可用的 GUI)
- cmake:构建依赖于非源文件.Qt帮助生成
- 使用 CMake 构建 {fmt} 时出现问题
- C++ CMake 构建错误:未定义对"boost::throw_exception(std::exception const&)"的引用
- 在Travis中为CMAKE构建指定编译器版本
- cmake:构建可执行文件并库并链接它们