cmake混合编译.cpp, .cu为动态库

为方便程序连接,将cuda文件与cpp混合编译为一个动态库
##将混合代码编译为so库


add_definitions(-std=c++11 -fPIC)

FIND_PACKAGE(CUDA)

IF(${CUDA_FOUND})
add_definitions(-DGPU_CUDA)
SET(CUDA_NVCC_FLAGS -Xcompiler -std=c++11 -Xcompiler -fPIC)
ENDIF()

add_library(gpu SHARED
  a.cpp
  b.cpp
)
IF(${CUDA_FOUND})
cuda_add_library(foo STATIC
  c.cu
)
ELSE()
add_library(foo STATIC
  c.cpp
)
ELSE()

target_link_libraries(gpu
  LINK_PRIVATE foo
)

引用so库

target_link_libraries (project gpu)

你可能感兴趣的:(c/c++,Linux,cuda)