用QT5编译QtOpenCL

用QT5编译QtOpenCL,opencl,qmake,qt5,Opencl,Qmake,Qt5,是否有人使用Qt5(可能在Windows下)编译库 编辑:我通过将代码移植到QT5来编译代码。我在问题中留下了我想在我的方法中替换的脏部分,并在回答中描述了我所做的事情 我无法提供opencl安装的include路径,因此 通过添加行手动修改src/opencl/opencl.pro INCLUDEPATH += " *[absolute path to the openCL include folder]* " QMAKE_LIBDIR_OPENCL = "*[absolute path to

是否有人使用Qt5(可能在Windows下)编译库

编辑:我通过将代码移植到QT5来编译代码。我在问题中留下了我想在我的方法中替换的脏部分,并在回答中描述了我所做的事情

我无法提供opencl安装的include路径,因此

通过添加行手动修改src/opencl/opencl.pro

INCLUDEPATH += " *[absolute path to the openCL include folder]* "
QMAKE_LIBDIR_OPENCL = "*[absolute path to the opencl lib folder]*"
INCPATH += " *[absolute path to the openCL include folder]* "
QMAKE_LIBDIR_OPENCL = "*[absolute path to the opencl lib folder]*"
通过添加行手动修改src/openclgl/openclgl.pro

INCLUDEPATH += " *[absolute path to the openCL include folder]* "
QMAKE_LIBDIR_OPENCL = "*[absolute path to the opencl lib folder]*"
INCPATH += " *[absolute path to the openCL include folder]* "
QMAKE_LIBDIR_OPENCL = "*[absolute path to the opencl lib folder]*"

有人知道如何以更干净的方式解决这个问题吗?

以下是我必须介绍的更改:

  • 修改.pro文件以添加OpenCL库。这对我来说仍然是一个悬而未决的问题。如何以更干净的方式修复此问题

  • 将项目(opencl.pro和openclgl.pro)链接到所需的其他Qt模块:

    QT+=并发

  • 通过删除包(例如,
    #include
    而不是旧的
    #include)来修复#include样式
    

  • 通过分别用std::malloc、std::free、std::memcpy替换qMalloc、qfree、qMemCopy来修复qclvector.cpp

    此外,将构造函数中ref的初始化从ref=1修改为ref.store(1)

  • 删除所有宏QT\u许可\u模块


  • 这足以使用QT5编译至少QtOpenCL和QtOpenCLGL,我要补充的是,我还必须在
    qclcontext.cpp
    中修改
    static void qt\u cl\u context\u notify(…
    static void qt\u cl\u context\u notify(…和
    static void qt\u clgl\u context\u notify(…
    to
    static void CL\u CALLBACK qt\u clgl\u context\u notify(…
    in
    qclcontextgl.cpp