您的位置:首页 > 编程语言 > Qt开发

零基础学习OpenCL(2)-Qt运行OpenCL的HelloWorld例程

2016-12-14 10:36 3067 查看
接着上节的说,既然已经跑通了人家给的例程,那就在我的Qt下再试试,看看会有什么问题出现。

首先在Qt下建立一个纯C++的工程,然后把例程HelloWorld文件夹里的HelloWorld.cpp的内容完全拷贝过来。因为工程要用到OpenCL,所以要配置OpenCL库的路径

打开MyfirstOpenCL.pro,添加:

INCLUDEPATH+=/opt/AMDAPPSDK-3.0/include/

LIBS+=/opt/AMDAPPSDK-3.0/lib/x86_64/sdk/libOpenCL.so  (或者LIBS+=-L/opt/AMDAPPSDK-3.0/lib/x86_64/sdk/   -lOpenCL)

保存,编译通过,但是一运行就报错:

error while loading shared libraries:libOpenCL.so.1:cannot open shared object file:No such file or directory

这个错误我之前在linux下,运行例程时候也遇到过,解决办法是重新source /etc/profile即可。这么看的话,编译能通过,说明就能找到库,但是运行时候说找不到,那就是我的Qt的自动搜索的LD_LIBRARY_PATH不正确。可是我明明已经在/etc/profile里配置了呀,也source了,无奈之下,关机重新启动。

编译MyfirstOpenCL程序,运行通过,输出结果:

No GPU devide availabel.

Choose CPU as default device.

Error:failed to open file

:HelloWorld_kernel.cl

input string:

GdkknVnqkc

output string:

passed!

按<RETURN>来关闭窗口...

查看程序,原来在第5步时候用到了HelloWorld_Kernel.cl文件,而且路径是当前路径,所以把HelloWorld_Kernel.cl文件拷贝到build-MyfirstOpenCL-Desktop-Qt_5_4_2_GCC_64bit_Debug文件里。或者随便把它拷贝到一个文件里,然后更改使用路径就行了。

继续编译,通过,打印结果:

No GPU devide availabel.

Choose CPU as default device.

input string:

GdkknVnqkc

output string:

HelloWorld

passed!

按<RETURN>来关闭窗口...

成功!
ps:系统这个东西有事时候就是这么奇怪!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: