linux服务器上无法编译最简单tbb程序

在linux服务器上通过intel官网的离线安装包安装了编译器和tbb,然后无法编译简单的tbb程序。
程序如下图

img

编译后出现大量undefined reference错误,如下图

img

加上-ltbb编译选项后除了出现一模一样的undefined reference错误外,还出现了新的关于libtbb.so GLIBCXX_3.4的报错,如下图

img

该回答内容部分引用GPT,GPT_Pro更好的解决问题
在linux服务器上编译最简单的tbb程序时,可能会遇到大量的undefined reference错误以及有关libtbb.soGLIBCXX_3.4的报错。这是因为在使用Intel官网的离线安装包安装TBB时,可能没有正确地编译TBB的动态库和静态库,所以在链接TBB的动态库和静态库时会出现这些错误。

要解决此问题,需要重新编译TBB(如果已经编译过,可以尝试使用更多的选项重新编译)。下载TBB源代码(https://github.com/oneapi-src/oneTBB%EF%BC%89%E5%90%8E%EF%BC%8C%E4%BD%BF%E7%94%A8%E4%BB%A5%E4%B8%8B%E5%91%BD%E4%BB%A4%E9%87%8D%E6%96%B0%E7%BC%96%E8%AF%91TBB%EF%BC%9A

$ cd oneTBB
$ make compiler=<compiler> tbb_build_prefix=<prefix> tbb_build_dir=<build_dir>

其中, 是要使用的编译器(如gcc、clang、icpc), 是要安装TBB的路径, 是要存放TBB生成文件的路径。

接下来,依次运行 make、make install 命令即可在 目录下安装TBB。

最后,在编译最简单的tbb程序时,要加上 -Itbb 选项,如下所示:

$ g++ -o test main.cpp -Itbb -ltbb

这样就可以正常编译最简单的tbb程序了。
如果回答有帮助,望采纳。

我是交叉编译的 https://blog.csdn.net/wd1603926823/article/details/116535175
你可以参考下,另外你这里应该加上tbb.h 然后你可以看到我还加了c++11

img