本节提供调用HMPP接口函数的示例代码,帮助用户快速使用HMPP函数库。
- 创建test.cpp文件。
- test.cpp文件中添加以下代码内容。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29 | #include <stdio.h>
#include <stdlib.h>
#include "hmpp.h"
#define BUFFER_SIZE_T 500
void AddExample() {
uint32_t *src1 = HMPPS_Malloc_32u(BUFFER_SIZE_T);
uint32_t *src2 = HMPPS_Malloc_32u(BUFFER_SIZE_T);
uint32_t *dst = HMPPS_Malloc_32u(BUFFER_SIZE_T);
int32_t i, result;
if (src1 == NULL || src2 == NULL || dst == NULL) {
return;
}
for (i = 0; i < BUFFER_SIZE_T; ++i) {
src1[i] = i;
src2[i] = i + 1;
}
result = HMPPS_Add_32u(src1, src2, dst, BUFFER_SIZE_T);
printf("result = %d \n dst = ", result);
for (i = 0; i < BUFFER_SIZE_T; i++) {
printf("%d ", dst[i]);
}
printf("\n");
HMPPS_Free(src1);
HMPPS_Free(src2);
HMPPS_Free(dst);
}
|
| int main(void){
AddExample();
return 0;
}
|
编译并执行示例
- 编译文件。
| g++ test.cpp -o test -L /usr/local/kml/lib/ -lkfft -lkfftf -L /usr/local/kml/lib/kvml/single -lkvml -lkm -lm -L /usr/local/kml/lib/kblas/locking -lkblas -L /usr/local/lib/HMPP -lHMPP_signal -lHMPP_core -lpthread
|
问题解决
问题现象:
- 头文件包含错误:“fatal error: hmpp.h: No such file or directory”
- 引用动态库错误:“./test: error while loading shared libraries: libHMPP_core.so.xxxx: cannot open shared object file: No such file or directory”
上述现象结果中涉及的xxxx代表版本号。
问题原因:
- 安装包可能未正确安装,HMPP库的头文件和动态库并未存储在指定目录。
- 安装包安装后,环境变量未正常写入系统并生效。
处理步骤:
- 在“/usr/local/include/HMPP”和“/usr/local/lib/HMPP”目录查找是否存在头文件和动态库,如果不存在需重新安装。
- 添加环境变量。
- 打开“/etc/profile”文件。
- 在文件中添加如下环境变量。
export C_INCLUDE_PATH=$C_INCLUDE_PATH:/usr/local/include/HMPP
export CPLUS_INCLUDE_PATH=$CPLUS_INCLUDE_PATH:/usr/local/include/HMPP
if [ ! -n "$LD_LIBRARY_PATH" ]
then
export LD_LIBRARY_PATH=/usr/local/lib/HMPP
else
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib/HMPP
fi
- 按“Esc”键,输入:wq!,按“Enter”保存并退出编辑。
- 使配置文件生效。