本文介绍: 在RV1106上尝试编译TBB加速工具
接上文,本章尝试在RV1106上使用TBB。依然是一言难尽,此文依然只是记录实践过程。
源码下载,编译TBB
下载地址: https://github.com/oneapi-src/oneTBB
版本使用 oneTBB-2021.11.0,这个版本可以使用cmake编译。
cmake配置完后,进入build目录,使用make指令,正常情况下应该一切正常,遗憾的是编译过程会报如下错误:
经查,fenv_t是跟硬件相关的浮点环境,起初我怀疑是未包含指定的头文件,于是在交叉编译工具链下找到fenv.h头文件加入到爆粗的部分,错误依旧。
然后发现是相关宏定义不存在,于是尝试单独验证fenv.h的有效性。
验证浮点环境的有效性
需要关注的点包括以下几个部分:
1、工具链应该包含支持C99标准的编译器(如gcc或clang),以及相应的库支持。
2、在交叉编译工具链中查找是否存在 <fenv.h>
头文件,这通常是存在于交叉编译链工具下
3、 – 编译时通过 -std=c99
或者 -std=gnu99
参数强制使用C99标准(如果是C++代码,确保编译器同时支持C++和C99混合编译)。
4、- 对于某些交叉编译环境,可能仍需要类似 _GLIBCXX_USE_C99_FENV_TR1
这样的宏定义来开启特定的浮点环境支持。
5、编写一个小测试程序来尝试使用 <fenv.h>
中的功能,并通过交叉编译工具链进行编译和链接,然后在目标平台上运行,以验证实际功能是否有效。
针对以上几点逐步检查后,写了如下代码进行编译验证:
tt.cpp
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。