【发布时间】:2017-03-25 00:14:56
【问题描述】:
我正在尝试使用 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_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})
【问题讨论】: