如何在Linux上从源代码安装TBB并使其工作
How to install TBB from source on Linux and make it work
我想知道如何从源代码安装TBB并使其在Linux系统上工作。 我在使用它时遇到了一些问题,如果我通过包管理器安装 TBB,这些问题不会出现。
在TBB网页中,有一些关于如何执行此操作的指南,例如设置LD_LIBRARY_PATH
和CPATH
变量,或获取tbbvars.sh
文件。即使我这样做,当我尝试编译一个示例时g++
说找不到tbb
。
所以我的问题是,有没有一种简单的方法来设置所有内容(编译源代码,我应该设置哪些变量......(以便使用 TBB?
谢谢。
注意:问这个问题时的库版本号是 2(如果我没记错的话(。我已经亲自测试了直到 4.1 版的解决方案,但我认为它也适用于当前版本 4.2 (update 3)
,因为构建方法保持不变。
我已经有了解决方案。我将在此处发布它,以便它可以帮助其他人了解此主题。
-
下载最新的稳定源代码并解压缩,即
~/tbbsrc
-
在里面,键入
make
.它应该开始编译 tbb 库和内存分配器。 -
标头为
~/tbbsrc/include
-
~/tbbsrc/build
里面将有两个新文件夹,一个用于发布版本,另一个用于调试版本。这些文件夹的名称类似于architecture_ldVersion_g++Version_kernelVersion
. -
我建议设置一些变量,例如在
~/.bashrc
文件中,例如:
TBB_INSTALL_DIR = $HOME/tbbsrc
TBB_INCLUDE = $TBB_INSTALL_DIR/include
TBB_LIBRARY_RELEASE = $TBB_INSTALL_DIR/build/RELEASE_FOLDER
TBB_LIBRARY_DEBUG = $TBB_INSTALL_DIR/build/DEBUG_FOLDER
- 让我们尝试一个简单的例子:
// main.cpp
#include "tbb/task_scheduler_init.h"
int main(int argc, char* argv[]) {
// tbb::task_scheduler_init init(tbb::task_scheduler_init::automatic);
// implicit tbb::task_sheduler_init::automatic
tbb::task_scheduler_init init;
return 0;
}
- 例如,要使用发布版本进行编译,请执行以下操作:
g++ main.cpp -I$TBB_INCLUDE -Wl,-rpath,$TBB_LIBRARY_RELEASE -L$TBB_LIBRARY_RELEASE -ltbb
注意:使用
-Wl,-rpath,$TBB_LIBRARY_RELEASE
,我们告诉动态链接器在哪里可以找到libtbb.so
- 这应该可以正常工作!
此致敬意!
苹果叮当 5.1 的安装:[感谢 rwols 提供的信息]
键入 make compiler=clang
或 make compiler=clang stdlib=libc++
而不是键入 make
https://github.com/wjakob/tbb 似乎是要走的路。
git clone https://github.com/wjakob/tbb.git
cd tbb/build
cmake ..
make -j
sudo make install
- QSqlquery prepare()和bindvalue()不工作
- 导入库可以跨dll版本工作吗
- 以螺旋方式打印矩阵的程序.(工作不好)
- 对象指针在c++中是如何工作的
- 为什么在Windows上的VS 2019和Clang 9中"size_t"在没有标题的情况下工作
- VSOMEIP-2个设备之间的通信(TCP/UDP)不工作
- 为字符串中每 N 个字符插入空格的函数没有按照我认为的方式工作?
- C++为线程工作动态地分割例程
- 为什么我的 std::ref 无法按预期工作?
- 布尔比较运算符是如何在C++中工作的
- SampleConsensusPrerejective(ext.RANSAC)是如何真正工作的
- 不确定要在我的main中放入什么才能使我的代码正常工作
- 为什么std::condition_variable notify_all的工作速度比notify_one快(对于随机请
- tbb::enumerable_thread_specific在其他线程库中工作吗
- TBB task_arena & task_group 用于扩展parallel_for工作
- 如何在Linux上从源代码安装TBB并使其工作
- TBB vs.本地工作队列
- 需要帮助让情报TBB工作
- 英特尔TBB concurrent_queue是如何工作的?它是否实现了细粒度的并行性
- 英特尔TBB将在AMD处理器上工作