为方便程序连接,将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)