派生自 Algorithm/baseDetector

m
Scheaven
2021-07-06 524659bcad6cfda4aa07dac8aab1b6f4f5eaf835
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
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})
 
 
link_directories(/usr/local/cuda/lib64)
link_directories(/usr/local/lib)
 
# 设置环境的模型查找,如果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/opencv4.5.1/build)
FIND_PACKAGE(OpenCV REQUIRED PATHS "/data/disk2/opt/01_opencv/opencv4.5.2")
include_directories( ${OpenCV_INCLUDE_DIRS} )
 
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(".")
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/")
 
 
#设置链接库搜索目录,项目中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} ${Opencv_LIBS})