主页 > 软件开发  > 

学习笔记-cmake


cmake的版本号说明:

CMAKE_MINIMUM_REQUIRED(VERSION 3.10) # 指定编译 C++ 版本 set(CMAKE_CXX_STANDARD 17)

创建一个工程:

project(preprocess)

工程下创建一个项目:

SET(PROGRAM WorkStation)

include路径:

set (INCLUDE_PATH_common ${CMAKE_SOURCE_DIR}/common) set (INCLUDE_PATH_MQ ${CMAKE_SOURCE_DIR}/rabbitmq-c) set (INCLUDE_PATH_JSON ${CMAKE_SOURCE_DIR}/jsonDeal/rapidjson) set (INCLUDE_PATH_LIB ${CMAKE_SOURCE_DIR}/libs) include_directories(   ${INCLUDE_PATH_common}   ${INCLUDE_PATH_MQ}   ${INCLUDE_PATH_JSON}   ${Boost_INCLUDE_DIRS}   ${GLOG_INCLUDE_DIRS}   )

附加库目录路径:备注:这个要在add_executable之前

link_directories(${Boost_LIBRARY_DIRS})

添加cpp文件:

set(${PROGRAM}_Src ${CMAKE_SOURCE_DIR}/common/utils.c ${CMAKE_SOURCE_DIR}/cJSON.c ${CMAKE_SOURCE_DIR}/rabbitmqConsumerTopic.cpp ) add_executable(${PROGRAM}  ${${PROGRAM}_Src})

链接到动态库,添加lib,vs工程属性里的附加依赖项:

target_link_libraries(${PROGRAM} ${INCLUDE_PATH_LIB}/librabbitmq.4.lib ${INCLUDE_PATH_LIB}/rabbitmq.4.lib ${Boost_LIBRARIES} ${GLOG_LIBRARIES} )

集成boost、glog:

list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_LIST_DIR}/cmake")#文件夹下有Findglog文件 find_package(Boost REQUIRED) message("Boost_FOUND  , Boost_INCLUDE_DIRS:${Boost_INCLUDE_DIRS}") message("Boost_FOUND  , Boost_LIBRARY_DIRS:${Boost_LIBRARY_DIRS}") if("${CMAKE_SYSTEM_NAME}" STREQUAL "Windows") else()     set(Boost_LIBRARIES         "-lboost_system -lboost_filesystem -lboost_date_time -lpthread"     ) endif() message("Boost_LIBRARIES is ${Boost_LIBRARIES}") find_package(glog REQUIRED) if(GLOG_FOUND)   message("GLOG_FOUND ...  GLOG_LIBRARIES is   ${GLOG_LIBRARIES} ,GLOG_INCLUDE_DIRS is ${GLOG_INCLUDE_DIRS},")   add_definitions(-DUSE_GLOG=ON)   add_definitions(-DGLOG_NO_ABBREVIATED_SEVERITIES -DGOOGLE_GLOG_DLL_DECL=) else()   message("GLOG_NOT_FOUND ...") endif()

标签:

学习笔记-cmake由讯客互联软件开发栏目发布,感谢您对讯客互联的认可,以及对我们原创作品以及文章的青睐,非常欢迎各位朋友分享到个人网站或者朋友圈,但转载请说明文章出处“学习笔记-cmake