cmake_minimum_required(VERSION 3.5) # set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fvisibility=hidden -DEIGEN_MAX_ALIGN_BYTES=32 -DEIGEN_DONT_VECTORIZE -fPIC -march=native -DGPU -DCUDNN -DOPENCV -g -W -O0 -pthread -DS_DEBUG") set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fvisibility=hidden -DEIGEN_MAX_ALIGN_BYTES=32 -DEIGEN_DONT_VECTORIZE -fPIC -march=native -DGPU -DCUDNN -DOPENCV -g -W -O0 -pthread -DS_DEBUG -DS_SERVER") #set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fvisibility=hidden -DEIGEN_MAX_ALIGN_BYTES=32 -DEIGEN_DONT_VECTORIZE -fPIC -lm -march=native -DGPU -DCUDNN -DOPENCV -g -W -O0 -pthread -Wl,--no-as-needed") set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fvisibility=hidden -DGPU -DCUDNN -DOPENCV -g -lm -fPIC -W -O0 -Wl,--no-as-needed -DS_DEBUG -DS_SERVER") # 编译C脚本时调用GPU环境信息 #set(CMAKE_C_FLAGS "-fvisibility=hidden") #set(CMAKE_CXX_FLAGS "-fvisibility=hidden") #项目名称/工程名 project(baseDetector) set(EXECUTABLE_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/build) #设置c++编译器 set(CMAKE_CXX_STANDARD 14) #set(CMAKE_CXX_STANDARD_REQUIRED ON) #set(CMAKE_CXX_EXTENSIONS OFF) #set(CMAKE_BUILD_TYPE debug) add_compile_options(-fPIC -ldl -lm -g -Wall -Wshadow -Wno-sign-compare -w -pthread) #add_definitions(-DDEBUG_ERR -DDEBUG_INFO) #add_definitions(-DDEBUG) #add_definitions(-D_GLIBCXX_USE_CXX11_ABI=0) file(GLOB_RECURSE CURRENT_HEADERS ./*.h ./lib/*.h ./lib/core/*.h ./lib/utils/*.h ./lib/detecter_tools/*.h ./lib/detecter_tools/extra/*.h ./lib/detecter_tools/*.hpp ./lib/detecter_tools/*.cuh ./lib/detecter_tools/darknet/*.hpp ./lib/detecter_tools/darknet/*.cuh) # 检索查找文件信息 file(GLOB sources ./*.cpp ./lib/*.cpp ./lib/core/*.cpp ./lib/utils/*.cpp ./lib/detecter_tools/*.cpp ./lib/detecter_tools/*.cpp ./lib/detecter_tools/darknet/*.c ./lib/detecter_tools/darknet/*.cpp ./lib/detecter_tools/darknet/*.cu) source_group("Include" FILES ${CURRENT_HEADERS}) source_group("Source" FILES ${sources}) #cudaS find_package(CUDA REQUIRED) #message("-- CUDA version:$(CUDA_VERSION)") # 设置环境的模型查找,如果CUDA版本大于9,则执行CUDA环境的模型查找 if(CUDA_VERSION_MAJOR GREATER 9) message("-- CUDA ${CUDA_VERSION_MAJOR} detected") set( CUDA_NVCC_FLAGS ${CUDA_NVCC_FLAGS}; -gencode arch=compute_61,code=sm_61 -std=c++14# 不同GPU有不同的算力指数,可查看算力表 ) set(CUDA_NVCC_FLAGS_RELWITHDEBINFO "--device-debug;-lineinfo") #find_package(OpenCV REQUIRED) # 查找系统的默认opencv环境 #message(${OpenCV_LIBS}) endif() # set(OPENCV_DIR /data/disk2/opt/01_opencv/opencv3.4.8) set(OPENCV_DIR /data/disk2/opt/01_opencv/opencv2.4.13) link_directories(/usr/local/cuda-10.0/lib64) #link_directories(/usr/local/lib) SET(LIBS gomp nvToolsExt opencv_core opencv_highgui # opencv_imgcodecs opencv_imgproc # opencv_videoio opencv_video opencv_calib3d opencv_features2d opencv_flann cublas stdc++fs #设置-lstdc++fs 新链接器选项,防止std等gcc库调用不到 curand cuda cudnn jsoncpp ) # 将源码目录保存到变量中 #aux_source_directory(./src DIR_SRCS) # 搜索当前目录下的所有.cpp文件 #add_library(demo ${SRC_LIST}) #明确指定包含哪些源文件 include_directories(/usr/local/cuda-10.0/include) include_directories(".") include_directories("./lib") include_directories("./lib/core") include_directories("./lib/detecter_tools") include_directories("./lib/utils") #include_directories("/usr/include/x86_64-linux-gnu/") #include_directories("/usr/include/json/") #include_directories("/usr/include") #include_directories("/usr/local/include/") include_directories(${OPENCV_DIR}/include) #设置链接库搜索目录,项目中lib路径 link_directories(${PYTORCH_DIR}/lib) #动态链接库目录/bazel-bin/tensorflow #link_directories(/usr/local/lib) link_directories(${OPENCV_DIR}/lib) #link_directories(/usr/lib/x86_64-linux-gnu/) link_directories(/home/scheaven/anaconda3/lib/) #添加要编译的可执行文件 #cuda_add_executable(${PROJECT_NAME} cuda_add_executable(${PROJECT_NAME} main.cpp ${sources} ${CURRENT_HEADERS}) #cuda_add_library(${PROJECT_NAME} SHARED ${sources} ${CURRENT_HEADERS}) #设置 target 需要链接的库 target_link_libraries(${PROJECT_NAME} ${LIBS})