派生自 Algorithm/baseDetector

Scheaven
2021-01-05 6ae75cc17b2952c63a79ff2c86da841f0dbbf3c6
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
131
132
133
134
135
136
137
138
cmake_minimum_required(VERSION 3.5)
 
#SET(CMAKE_CXX_FLAGS_DEBUG "$ENV{CXXFLAGS}  -fvisibility=hidden -DEIGEN_MAX_ALIGN_BYTES=32 -DEIGEN_DONT_VECTORIZE -march=native -O0 -Wall -g2 -ggdb")
#set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS}   -fvisibility=hidden -DEIGEN_MAX_ALIGN_BYTES=32 -DEIGEN_DONT_VECTORIZE -fPIC -march=native -DGPU -DCUDNN -DOPENCV -g -std=c++14  -W -O3 -pthread -Wl,--no-as-needed  -DS_DEBUG")
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 -std=c++11 -W -O3 -pthread -Wl,--no-as-needed")
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS}  -fvisibility=hidden -DGPU -DCUDNN -DOPENCV -g  -lm -std=c++11 -fPIC -W -O3 -Wl,--no-as-needed")  # 编译C脚本时调用GPU环境信息
#set(CMAKE_C_FLAGS "-fvisibility=hidden")
#set(CMAKE_CXX_FLAGS "-fvisibility=hidden")
 
#项目名称/工程名
project(yolo)
set(EXECUTABLE_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/build)
#设置c++编译器
 
set(CMAKE_CXX_STANDARD 11)
#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/detecter_tools/*.h
        ./lib/detecter_tools/extra/*.h
        ./lib/utils/*.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/detecter_tools/*.cpp
        ./lib/utils/*.cpp
        ./lib/detecter_tools/*.cpp
        ./lib/detecter_tools/darknet/*.c
        ./lib/detecter_tools/darknet/*.cpp
        ./lib/detecter_tools/darknet/*.cu)
 
#file(GLOB protobuf_files
#        ./lib/additional/protomsg.proto
#)
#foreach(s range ${sources})
#message(${s})
#endforeach()
 
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++11# 不同GPU有不同的算力指数,可查看算力表
    )
    set(CUDA_NVCC_FLAGS_RELWITHDEBINFO "--device-debug;-lineinfo")
    #find_package(OpenCV REQUIRED) # 查找系统的默认opencv环境
    #message(${OpenCV_LIBS})
endif()
 
 
set(OPENCV_DIR /home/disk1/s_opt/01_opencv/opencv2.4.13)
 
link_directories(/usr/local/cuda-10.0/lib64)
#link_directories(/usr/local/lib)
 
SET(LIBS
        cudart
        gomp
        nvToolsExt
        opencv_core
        opencv_highgui
        #opencv_imgcodecs
        opencv_imgproc
        #opencv_videoio
        opencv_video
        opencv_calib3d
        cublas
        stdc++fs  #设置-lstdc++fs 新链接器选项,防止std等gcc库调用不到
        curand
        cuda
        cudnn
        jsoncpp
        )
 
# 将源码目录保存到变量中
#aux_source_directory(./src DIR_SRCS)  # 搜索当前目录下的所有.cpp文件
#add_library(demo ${SRC_LIST})   #明确指定包含哪些源文件
 
 
#设置包含的目录,项目中的include路径,换成自己的路径即可
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(${OPENCV_DIR}/lib)
link_directories(/usr/local/cuda-10.0/lib64)  #动态链接库目录/bazel-bin/tensorflow
link_directories(/usr/local/lib)  #动态链接库目录/bazel-bin/tensorflow
link_directories(/usr/lib/x86_64-linux-gnu/)
link_directories(/home/basic/anaconda3/lib/)
 
 
#添加要编译的可执行文件
#cuda_add_executable(${PROJECT_NAME}
 
cuda_add_executable(${PROJECT_NAME} SDK_main.cpp ${sources} ${CURRENT_HEADERS})
#cuda_add_library(${PROJECT_NAME} SHARED ${sources} ${CURRENT_HEADERS})
 
#add_executable(demo ${DIR_SRCS})    ## 生成可执行文件
 
 
#设置 target 需要链接的库
#添加可执行文件所需要的库,连接libtensorflow_cc.so和libtensorflow_framework库,链接动态链接库
target_link_libraries(${PROJECT_NAME} ${LIBS})