CMAKEを使用してVS 2015ソリューションにインストール済みのCUDA 8.0ライブラリをすべて追加しようとしています。しかし、現在のCMakeLists.txt
ファイルでは、自分の入力ライブラリ(プロジェクトのプロパティ - >リンカ - >入力 - >追加の依存関係)の下でcudart_static.lib
とOpenCL.lib
に終わるだけです。 cusparse
、cusolver
、cufft
などのライブラリを手動で追加するのではなく、CMAKEコマンドを使用して、CUDAライブラリフォルダC:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v8.0\lib\x64
に利用可能なライブラリをすべて含める方法がありますか?Cmake - すべてのCUDAライブラリを追加
cmake_minimum_required(VERSION 2.8)
project(layerSeg)
# ==========================================================================
# find Boost
set(Boost_USE_STATIC_LIBS OFF)
set(Boost_USE_MULTITHREADED ON)
set(Boost_USE_STATIC_RUNTIME OFF)
find_package(Boost 1.63.0 REQUIRED filesystem regex)
if(Boost_FOUND)
message("Boost found")
include_directories(${BOOST_INCLUDEDIR})
link_directories(${BOOST_LIBRARYDIR})
endif()
# ==========================================================================
# find CUDA
find_package(CUDA 8.0 EXACT REQUIRED)
if (CUDA_FOUND)
message("CUDA found")
SET(CUDA_INCLUDE_DIRS "C:/Program Files/NVIDIA GPU Computing Toolkit/CUDA/v8.0/include" ${CUDA_INCLUDE_DIRS})
#include(FindCUDA)
INCLUDE_DIRECTORIES(${CUDA_INCLUDE_DIRS})
else()
message("CUDA not found")
endif()
# ==========================================================================
# find openCV
FIND_PACKAGE(OpenCV REQUIRED)
if (OpenCV_FOUND)
message("OpenCV found")
INCLUDE_DIRECTORIES(${OPENCV_INCLUDE_DIR})
set(CUDA_USE_STATIC_CUDA_RUNTIME ON)
else()
message("OpenCV not found")
endif()
# ==========================================================================
# Find ITK.
find_package(ITK REQUIRED)
if (ITK_FOUND)
message("ITK found")
include(${ITK_USE_FILE})
else()
message("ITK not found")
endif()
# ==========================================================================
# find VTK
find_package(VTK REQUIRED)
if (VTK_FOUND)
message("VTK found")
#message(${VTK_DIR})
#message(${VTK_USE_FILE})
include(${VTK_USE_FILE})
else()
message("VTK not found")
endif()
# ==========================================================================
# ==========================================================================
add_executable(layerSeg main.cpp mainGPU.cu kernels.cu lsh.h lshGPU.h)
target_link_libraries(layerSeg ${OpenCV_LIBS} ${CUDA_LIBRARIES} ${ITK_LIBRARIES} ${VTK_LIBRARIES} ${Boost_LIBRARIES})
変数 '$(CUDA_all_LIBRARIES)'を定義し、それを設定してCMakeモジュールに入れることができるので、すべてのプロジェクトでこのスーパーロングラインを繰り返す必要はありません。 – einpoklum