【问题标题】:How to use intel opencl sdk in Clion in windows 10?如何在 Windows 10 的 Clion 中使用 intel opencl sdk?
【发布时间】:2019-06-25 19:29:11
【问题描述】:

我已经为 windows 安装了 Intel opencl sdk,并且 opencl 变量被添加到环境变量中。我想将此 sdk 与我的 Clion ide 一起使用,因为找不到 CL/cl.hpp,所以我无法将它包含在我当前的项目中。如何将其添加到我在 Clion 中的项目中?

cl/cl.hpp 位于C:\Program Files(x86)\IntelSWTools\OpenCL\sdk\include\CL

以下是我的CMakeLists.txt


project(tpch_framework)

# enable c++11
#set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11")
set(CMAKE_CXX_STANDARD 14)
set(CMAKE_CXX_STANDARD_REQUIRED ON)

set(CMAKE_BUILD_TYPE "Release")

find_package(OpenMP REQUIRED)
find_package(OpenCL REQUIRED)

if (OPENMP_FOUND)
    set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${OpenMP_C_FLAGS}")
    set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${OpenMP_CXX_FLAGS}")
endif() 

# Configure required Boost libraries
set(BOOST_ROOT "" CACHE PATH "Boost build root (useful on Windows)")
option(Boost_USE_STATIC_LIBS
       "Search for static boost libs" OFF)
option(Boost_USE_MULTITHREADED
       "Search for multithreaded boost libs" ON)
option(Boost_USE_STATIC_RUNTIME
       "Search for boost libs linked against static C++ runtime" OFF)
find_package(Boost 1.47.0 REQUIRED filesystem system)

# ensure that dependant libraries not explicitly specified here
# are found by the linker:
link_directories(${Boost_LIBRARY_DIRS})
include_directories(${Boost_INCLUDE_DIRS})
set(LIBS ${LIBS} ${Boost_LIBRARIES})

#Bring the headers into the project
include_directories(include)

FILE(GLOB_RECURSE INC_ALL "include/*.hpp")

#However, the file(GLOB...) allows for wildcard additions:
file(GLOB SOURCES "src/*.cpp")

add_library(tpch_framework ${SOURCES})
add_executable(framework main.cpp ${INC_ALL})
target_link_libraries(framework tpch_framework)
#target_link_libraries(framework stdc++fs)
target_link_libraries(framework ${LIBS})

【问题讨论】:

  • 我猜,你在 CLion 中有 CMake 项目。您是否将find_package( OpenCL REQUIRED ) 添加到您的CMakeLists.txt 文件中?
  • 是的,我已经添加了它,但仍然是同样的错误
  • 你能用CMakeLists.txt文件内容更新你的问题吗?更容易确定缺少什么。

标签: c++ opencl intel clion


【解决方案1】:

您需要提供有关 OpenCL 标头的包含目录的信息,就像您为 Boost 标头提供的一样。此外,您需要将OpenCL 库与您的目标链接。

在你的 CMakeLists...

对于包含和链接目录:

link_directories(${Boost_LIBRARY_DIRS} ${OpenCL_LIBRARY})
include_directories(${Boost_INCLUDE_DIRS} ${OpenCL_INCLUDE_DIRS})

对于链接库:

set(LIBS ${LIBS} ${Boost_LIBRARIES} ${OpenCL_LIBRARY})

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-08-17
    • 2014-03-24
    • 2016-03-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多