linux下安裝intel的tbb庫

1、https://github.com/01org/tbb下載最新release版tbb源碼包。

2、我的環(huán)境為CentOS6.6-x64 +gcc4.82, 編譯會(huì)有如下報(bào)錯(cuò):

“Created ../build/linux_intel64_gcc_cc4.8.2_libc2.12_kernel2.6.32_release directory make -C "../build/linux_intel64_gcc_cc4.8.2_libc2.12_kernel2.6.32_release" -r -f ../../build/Makefile.tbb cfg=release
make[1]: Entering directory `/home/XXX/WorkSpace/tbb-2018_U5/build/linux_intel64_gcc_cc4.8.2_libc2.12_kernel2.6.32_release' ../../build/Makefile.tbb:32: CONFIG: cfg=release arch=intel64 compiler=gcc target=linux runtime=cc4.8.2_libc2.12_kernel2.6.32
g++ -o x86_rtm_rw_mutex.o -c -MMD -DDO_ITT_NOTIFY -g -O2 -DUSE_PTHREAD -m64 -mrtm -fPIC -D__TBB_BUILD=1 -Wall -Wno-parentheses -Wno-non-virtual-dtor -I../../src -I../../src/rml/include -I../../include ../../src/tbb/x86_rtm_rw_mutex.cpp
/tmp/ccYCbgzf.s: Assembler messages:
/tmp/ccYCbgzf.s:25: Error: no such instruction: `xend'
/tmp/ccYCbgzf.s:238: Error: no such instruction: `xbegin .L20'
/tmp/ccYCbgzf.s:357: Error: no such instruction: `xabort $255'
/tmp/ccYCbgzf.s:503: Error: no such instruction: `xbegin .L47'
/tmp/ccYCbgzf.s:617: Error: no such instruction: `xabort $255'
make[1]: *** [x86_rtm_rw_mutex.o] 錯(cuò)誤 1”

3、參考如下資料,修改build/linux.gcc.inc注釋掉-mrtm編譯項(xiàng)。
https://blog.csdn.net/u010793236/article/details/74010571
https://software.intel.com/zh-cn/forums/intel-threading-building-blocks/topic/558688
https://github.com/COMBINE-lab/salmon/issues/20

4、回到解壓目錄重新make編譯成功,用root用戶安裝到系統(tǒng)環(huán)境下。
(1)添加tbb變量

./generate_tbbvars.sh
./tbbvars.sh

(2)安裝到系統(tǒng)環(huán)境
將.so庫移至/usr/lib,將頭文件移至 /usr/local/include,運(yùn)行l(wèi)dconfig
(so文件在如build/linux_intel64_gcc_cc4.8.2_libc2.12_kernel2.6.32_release 目錄下)
(tbb-XX為解壓目錄)

cd ~/Work/tbb-XX/include && cp *.* /usr/local/include
cd ~/Work/tbb-XX/build/linux_intel64_gcc_cc4.8.2_libc2.12_kernel2.6.32_release/ && cp lib*.so* /usr/lib

5、編譯examples/pipeline/square 運(yùn)行報(bào)錯(cuò)

"pthread_attr_setstacksize: Invalid argument"

6、搜索“tbb pthread_attr_setstacksize: Invalid argument”,可參考如下資料,到/usr目錄下找到了舊的tbb頭文件和庫文件,bak掉.重新運(yùn)行l(wèi)dconfig。
https://github.com/BradnerLab/pipeline/issues/49
https://software.intel.com/en-us/forums/intel-threading-building-blocks/topic/288253

7、重新編譯examples/pipeline/square ,運(yùn)行正常。

serial run time = 0.165963
parallel run time = 0.0823397
elapsed time : 0.323785 seconds

總結(jié):centeos6.6x64+gcc4.8.2安裝tbb庫不支持gcc編譯-mrtm編譯項(xiàng),系統(tǒng)目錄下舊的tbb頭文件、庫備份后刪掉。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容