派生自 Algorithm/baseDetector

Scheaven
2021-06-03 168af40fe9a3cc81c6ee16b3e81f154780c36bdb
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
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})