You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

CMake报错set_target_properties调用参数数量错误(FindTBB.cmake)如何解决?

报错原因

你遇到的set_target_properties called with incorrect number of arguments报错,本质是CMake解析属性配置时出现了键值配对不匹配的问题:原代码中${TBB_INCLUDE_DIRS}、${TBB_LIBRARIES}两个变量没有加引号包裹,如果前置查找TBB的逻辑没有找到对应依赖,这两个变量会变为空值,解析时相当于直接缺失了两个属性值,最终导致整体参数数量不符合要求。

修复方案
  • 第一步:给所有引用变量加双引号包裹,避免空值导致参数缺失,替换原代码为以下内容:
set_target_properties(TBB::tbb PROPERTIES
      INTERFACE_COMPILE_DEFINITIONS "${TBB_DEFINITIONS}"
      INTERFACE_LINK_LIBRARIES  "Threads::Threads;${CMAKE_DL_LIBS}"
      INTERFACE_INCLUDE_DIRECTORIES  "${TBB_INCLUDE_DIRS}"
      IMPORTED_LOCATION              "${TBB_LIBRARIES}")
  • 第二步:在这段配置前新增TBB变量非空校验,提前识别依赖缺失问题,避免后续逻辑报错:
# 新增TBB依赖校验
if(NOT TBB_FOUND OR NOT TBB_INCLUDE_DIRS OR NOT TBB_LIBRARIES)
  message(FATAL_ERROR "TBB dependency not found, please check if TBB is installed and the search path is correct")
endif()
  • 可选优化:如果你使用的是2021及以上版本的TBB,官方已经自带了CMake配置文件,不需要自定义FindTBB.cmake脚本。可以直接删除项目中自定义的FindTBB.cmake文件,在根CMakeLists.txt的依赖查找部分直接使用官方配置:
find_package(TBB REQUIRED)

配置后TBB::tbb目标会自动生成,不需要手动调用set_target_properties配置属性,从根源避免该类错误。

内容的提问来源于stack exchange,提问作者Meganium97

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.04 21:42:02