使用 CMake 链接到 TBB 库

2024-01-12

I have tbb下载并放置在我的存储库目录中:

> tree deps/tbb/ -d 
deps/tbb/
├── bin
├── cmake
│   └── templates
├── include
│   ├── serial
│   │   └── tbb
│   └── tbb
│       ├── compat
│       ├── internal
│       └── machine
└── lib
    ├── ia32
    │   └── gcc4.8
    └── intel64
        └── gcc4.8

In my 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 退出状态

我无法弄清楚缺少什么。谢谢。

Update

此提交解决了之前的错误:

-    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()”的未定义引用

Update

以外find_library,哪些 CMake 工具可用于链接到 TBB 共享库?

我尝试过一些 CMake 工具,但我不知道如何链接到 TBB*.so文件正确!


TBB 具有原生 CMake 支持。在我安装了 Intel oneAPI 的系统上,配置包安装在此处:

/opt/intel/oneapi/tbb/latest/lib/cmake/tbb/TBBConfig.cmake

因此,我只需要添加/opt/intel/oneapi/tbb/latest to my CMAKE_PREFIX_PATH。在我的 CMakeLists.txt 中,我写道:

cmake_minimum_required(VERSION 3.21)
project(test-tbb)

find_package(TBB REQUIRED)

add_library(main main.cpp)
target_link_libraries(main PRIVATE TBB::tbb)
target_compile_features(main PRIVATE cxx_std_11)

TBB 提供 IMPORTED 目标TBB::tbb,这就是您应该链接到的内容。

main.cpp 只是这里的源代码:https://stackoverflow.com/a/36782794/2137996 https://stackoverflow.com/a/36782794/2137996

像这样构建:

$ cmake -G Ninja -S . -B build -DCMAKE_PREFIX_PATH=/opt/intel/oneapi/tbb/latest
$ cmake --build build --verbose
[1/2] /usr/bin/c++  -isystem /opt/intel/oneapi/tbb/2021.3.0/include  -MD -MT CMakeFiles/main.dir/main.cpp.o -MF CMakeFiles/main.dir/main.cpp.o.d -o CMakeFiles/main.dir/main.cpp.o -c /home/alex/test2/main.cpp
[2/2] : && /usr/bin/cmake -E rm -f libmain.a && /usr/bin/ar qc libmain.a  CMakeFiles/main.dir/main.cpp.o && /usr/bin/ranlib libmain.a && :
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 CMake 链接到 TBB 库 的相关文章

随机推荐

  • 不同组件中的垫菜单和按钮

    I have
  • 在 PL/SQL 中使用带有“LIKE %”的变量(例如“variable%”)?

    问题类似于使用LIKE in SQL PLUS 其中 select 语句包含LIKE条款如下 select from sometable where somecolumn LIKE something 如何在游标中使用相同的内容 我尝试使用
  • scipy.io.wavfile.read 返回的数据是什么意思?

    的文档scipy io wavfile read说它返回采样率和数据 但在这种情况下 数据实际上意味着什么 wav files 谁能用通俗的语言告诉我这些数据是如何准备的 附言 我在某处读到这意味着振幅 我读到的内容正确吗 如果是 那么该幅
  • Android Studio - 1.5.11 之前的 IBus 可能会导致输入问题。有关详细信息,请参阅 IDEA-78860 [重复]

    这个问题在这里已经有答案了 Android Studio 1 5 Build AI 141 2422023 built on November 12 2015 我刚刚更新了我的Android Studio on Ubuntu 15 10当它
  • MVC5 - 数据注释 - 客户端验证没有发生?

    我有一个 MVC 5 应用程序 我使用数据注释来进行大部分验证 我的班级中的属性之一如下所示 Required ErrorMessage Please enter a business name StringLength 80 public
  • 如何从选项卡排序列表中排除小部件?

    此图来自Qt官网 我以此为例 我想避免一些不重要的小部件以选项卡为中心 如果您有一个小部件想要在一些常用的之间快速旋转 则此策略非常有用QLineEdit输入数据并转义那些很少使用的设置 Take the picture as an exa
  • python 中具有无限初始条件的 ODE

    我有一个二阶微分方程 我想用 python 求解它 问题是对于其中一个变量我没有初始条件0但仅限于无穷大的值 谁能告诉我应该提供哪些参数scipy integrate odeint 能解决吗 Equation Theta 需要根据时间来找到
  • 在 Eclipse 中添加外部 jar

    我创建了一个连接 MySQL 的程序 我使用 eclipse 添加外部 jar 选项添加 Connector j 程序在eclipse中运行良好 但是当我使用 eclipse 创建可执行 jar 并运行它时 它总是给出 ClassNotFo
  • 打开文件失败是否必须使用die?

    大多数时候 我会做这样的事情 open FH gt file txt or die Cann t open file Does die必须使用吗 如果我希望我的脚本继续 并且如果无法打开文件则忽略错误 我应该做什么 你可能想做类似的事情 i
  • openSUSE 的构建必备

    我是 openSUSE 的新手 我需要获得系统的构建必要条件 但无法使用它sudo apt get install build essential或者甚至通过使用sudo apt get update然后按照前面的代码进行操作 我找到了一种
  • 无法使用 SSH 访问 AWS CodeCommit

    弄清楚如何让 AWS CodeCommit 与标准 SSH 身份验证配合使用非常困难 看到另一个类似的主题 但没有答案 我还不能发表评论 这是在 Windows 上使用 Git Bash 重现步骤 创建具有完全权限的 IAM 用户 AwsA
  • 如何从 dropzone.js 上传和删除文件

    我使用了下面的代码 图像已被删除 但缩略图仍然显示 Dropzone options myDropzone init function this on success function file response file serverId
  • 在 R 中将日期转换为星期几

    我的数据框中有一个这种格式的日期 02 July 2015 我需要将其转换为星期几 即 183 就像是 df day of week lt weekdays as Date df date column 但这不理解日期的格式 你可以使用lu
  • 防止引导程序弹出窗口中的默认值

    我正在使用 twitter bootstrap 并且我已经得到了这段代码 addYT on click function event var this this event preventDefault popover placement
  • 递归:如何避免Python设置在迭代过程中更改设置 RuntimeError

    背景及问题描述 我有一些代码可以解决图着色问题 广义上定义为将 颜色 分配给无向图的问题 确保由边连接的两个顶点没有相同的颜色 我正在尝试使用约束传播来实现一个解决方案 以提高标准递归回溯算法的效率 但遇到以下错误 File C Users
  • 我想将 Qt QML Combobox 设置为 PyQt5 对象属性

    我正在编写一个小程序 它使用 Qt5 QML 作为 GUI 层 并使用 Python3 PyQt5 来实现数据模型 我现在想显示一个ComboBox在 QML 中并将其模型设置为枚举列表 如何将枚举导出为 python 类的属性 以便我可以
  • Sling解析脚本调用顺序

    我正在研究 sling 如何根据 url 调用脚本 在选择器的情况下 它似乎工作正常 但如果我不使用选择器 它会让我难以理解 我有一个页面 content AEMProject English test html其中有资源类型AEMProj
  • 如何检查模型中是否存在 DbContext.Set

    我遇到的情况是 我可能正在使用多个 DbContext 这些 DbContext 可能包含也可能不包含 SomeEntity 的 DbSet 当然 如果我关闭 SaveChanges 并且该实体不存在 则会出现以下错误 实体类型 SomeE
  • 如何使用 Java 禁用 Selenium WebDriver 中的 Chrome 插件

    Chrome 插件弹出 https i stack imgur com jRBdG png 当我为此应用程序执行自动化代码时 会显示上面的弹出窗口 现在我需要知道如何使用 Java 禁用 Selenium WebDriver 中的 PDF
  • 使用 CMake 链接到 TBB 库

    I have tbb下载并放置在我的存储库目录中 gt tree deps tbb d deps tbb bin cmake templates include serial tbb tbb compat internal machine