您当前的位置: 首页 > 

qianbo_insist

暂无认证

  • 0浏览

    0关注

    399博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

cmakefile 基础篇

qianbo_insist 发布时间:2021-06-29 21:47:35 ,浏览量:0

c++ 11

使用c++11 ,使用CMAKE_CXX_STANDARD 11,假定有两个文件main.cc和util.cc 在这里插入图片描述

cmake_minimum_required(VERSION 2.8.0)
project(test)

set(CMAKE_CXX_STANDARD 11)

#message(${CMAKE_CURRENT_SOURCE_DIR}/src)
message("strange")
set(SRC  ${PROJECT_SOURCE_DIR}/main.cc
         ${PROJECT_SOURCE_DIR}/util.cc
)

add_executable(t1 ${SRC})
指定编译模式
cmake_minimum_required(VERSION 2.8) 
project(TestProject) 
#使用C++11 
add_compile_options(-std=c++11) 
#编译时自动打开MOC 
set(CMAKE_AUTOMOC ON) 
set(CMAKE_INCLUDE_CURRENT_DIR ON) 
#编译模式 
#SET(CMAKE_BUILD_TYPE "Debug") 
SET(CMAKE_BUILD_TYPE "Release") 
SET(CMAKE_CXX_FLAGS_DEBUG "$ENV{CXXFLAGS} -O0 -Wall -g -ggdb")
SET(CMAKE_CXX_FLAGS_RELEASE "$ENV{CXXFLAGS} -O3 -Wall") 

然后,执行cmake cmake -DCMAKE_BUILD_TYPE=Debug/Release + CMakeLists.txt所在路径 最后,执行 make

使用库

opencv 以使用opencv库作为例子

cmake_minimum_required(VERSION 2.8.0)
project(test3)


set(OpenCV_DIR "/usr/local/opencv/")  
#find_package(OpenCV)

set(CMAKE_CXX_STANDARD 14)
#set(CMAKE_CXXFLAGS += -std=c++11)
include_directories( ${OpenCV_DIR}include/opencv4/)
link_directories(
        ${OpenCV_DIR}/lib64/
)

message("strange")
set(SRC  ${PROJECT_SOURCE_DIR}/main.cc
)

add_executable(t3 ${SRC})
target_link_libraries(t3
        libopencv_core.so
        libopencv_highgui.so 
        libopencv_imgcodecs.so
)
动态静态库

在这里插入图片描述

cmake_minimum_required(VERSION 2.8.12.2) project(StreamResolver)

set(CMAKE_BUILD_TYPE “Debug”)

#头文件 include_directories(Include) include_directories(Source)

#设置编译参数 set(CMAKE_CXX_FLAGS “-ffunction-sections -fdata-sections -Wall -std=c++11 -DPOSIX -DDEBUG_”)

#导入库 add_library(Infra STATIC IMPORTED) set_target_properties(Infra PROPERTIES IMPORTED_LOCATION ${PROJECT_SOURCE_DIR}/Lib/libInfra.a)

#设置可执行文件的输出路径(EXCUTABLE_OUTPUT_PATH是全局变量) set(EXECUTABLE_OUTPUT_PATH ./)

#生成静态库 add_library(StreamResolver Src/rtp/rtp_demux.cpp Src/rtp/rtp_header.cpp Src/ps/ps_demux.cpp Src/h26x/H264ParseSPS.cpp Src/h26x/H265ParseSPS.cpp Src/h26x/h26x_parser.cpp Src/h26x/MediaBuffer.cpp)

##生成动态库 #add_library(StreamResolver_S SHARED #Src/rtp/rtp_demux.cpp #Src/rtp/rtp_header.cpp #Src/ps/ps_demux.cpp)

test.c

#include  
#include   
#include   
int main(int argc, const char *argv[]){  

  ucontext_t context;  
  getcontext(&context);  
  puts("Hello world");  
  sleep(1);  
  setcontext(&context);  
  return 0;  
}  
关注
打赏
1663161521
查看更多评论
立即登录/注册

微信扫码登录

0.0612s