1、下载、构建boost,然后配置BOOST_ROOT环境变量(建议放在~/.bashrc文件中,然后执行:source ~/.bashrc)
2、下载、构建 、安装glfags,这里放在了/usr/local目录
3、查找和使用的CMakeLists.txt文件:
cmake_minimum_required( VERSION 3.8 FATAL_ERROR)
project(main LANGUAGES CXX)
#set dirs
list(APPEND CMAKE_MODULE_PATH
$ENV{BOOST_ROOT}/stage/lib/cmake # append boost cmake dir
/usr/local/lib/cmake/ # append gflags cmake dir
)
set(PROJECT_ROOT ${CMAKE_CURRENT_LIST_DIR})
message("project dir:${PROJECT_ROOT}")
SET(BIN_DESTINATION ${PROJECT_SOURCE_DIR}/bin)
SET(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${BIN_DESTINATION})
SET(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${BIN_DESTINATION})
SET(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${BIN_DESTINATION})
#include cmake files
include(${PROJECT_ROOT}/version.cmake)
find_package(Boost REQUIRED COMPONENTS filesystem log system date_time) #find boost components
find_package(gflags REQUIRED COMPONENTS static) #find gflags
#set compile flags
#add_definitions(-std=c++11 -g -rdynamic)
set(CMAKE_CXX_FLAGS "-g3 -rdynamic -std=c++11")
set(CMAKE_CXX_FLAGS_DEBUG "-g3 -O0 -fsanitize=address -fno-omit-frame-pointer -fsanitize=leak")
set(CMAKE_CXX_FLAGS_RELEASE "-O3 -DNDEBUG")
#include dirs
include_directories(./
$ENV{BOOST_ROOT})
#link dirs
link_directories(${BIN_DESTINATION})
#execute
SET(SRC_MAIN demo.cpp main.cpp )
add_executable( ${PROJECT_NAME} ${SRC_MAIN})
set_target_properties(${PROJECT_NAME} PROPERTIES VERSION ${PROJECT_VERSION})
target_link_libraries(${PROJECT_NAME} gflags Boost::filesystem Boost::log Boost::system Boost::date_time) #link gflags and boost components
注意:需要配置好CMAKE_MODULE_PATH,因为find_package就是通过CMAKE_MODULE_PATH来查找库的