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})