我正在尝试在Windows 10上使用nvidia gpu,结合CMake和CLion(具体来说是boost compute)来使用OpenCL。感觉我已经尝试了所有的方法,但我对CMake毫无头绪,也找不到足够基础的网络文章让我理解。即使是官方文档对于初学者来说也不是很有帮助。我还需要最终在OS X和某些Linux系统上运行这个程序。
以下是我的混乱代码(CmakeLists.txt):
cmake_minimum_required(VERSION 3.3)
project(cpl)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11")
#set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11 -O2")
set(SOURCE_FILES
src/planner/main.cpp)
set(BOOST_ROOT C:/boost)
set(BOOSTROOT C:/boost)
include_directories(lib/compute/include)
include_directories($ENV{CUDA_PATH})
# boost
set(Boost_USE_STATIC_LIBS OFF)
set(Boost_USE_MULTITHREADED ON)
set(Boost_USE_STATIC_RUNTIME OFF)
find_package(Boost 1.60.0 REQUIRED)
# opencl
set(CMAKE_MODULE_PATH lib/cmake)
find_package(OpenCL REQUIRED)
INCLUDE_DIRECTORIES(${OpenCL_INCLUDE_DIRS})
LINK_DIRECTORIES(${OpenCL_LIBRARY})
message(STATUS "OpenCL found: ${OPENCL_FOUND}")
message(STATUS "OpenCL includes: ${OPENCL_INCLUDE_DIRS}")
message(STATUS "OpenCL CXX includes: ${OPENCL_HAS_CPP_BINDINGS}")
message(STATUS "OpenCL libraries: ${OPENCL_LIBRARIES}")
#target_link_libraries(cpl OpenCL)
这是我遇到的错误:
C:\Users\drathier\.CLion2016.1\system\cygwin_cmake\bin\cmake.exe --build C:\Users\drathier\.CLion2016.1\system\cmake\generated\cpl-bfc654e8\bfc654e8\Debug --target all -- -j 8
-- Boost version: 1.60.0
CMake Error at /cygdrive/c/Users/drathier/.CLion2016.1/system/cygwin_cmake/share/cmake-3.5.1/Modules/FindPackageHandleStandardArgs.cmake:148 (message):
Could NOT find OpenCL (missing: OpenCL_LIBRARY)
Call Stack (most recent call first):
/cygdrive/c/Users/drathier/.CLion2016.1/system/cygwin_cmake/share/cmake-3.5.1/Modules/FindPackageHandleStandardArgs.cmake:388 (_FPHSA_FAILURE_MESSAGE)
/cygdrive/c/Users/drathier/.CLion2016.1/system/cygwin_cmake/share/cmake-3.5.1/Modules/FindOpenCL.cmake:128 (find_package_handle_standard_args)
CMakeLists.txt:22 (find_package)
CMake输出日志: http://pastebin.com/EgGyRk9H
OpenCL
,可能有前缀和扩展名)?头文件cl.h
的路径是什么? - Tsyvarev