利用cmake制作makefile
- 在源代碼目錄下新建CMakeLists.txt,同時支持windows和linux
cmake_minimum_required(VERSION 2.8)
if(${WIN} STREQUAL "OFF")
SET(CMAKE_C_COMPILER "/usr/bin/gcc")
SET(CMAKE_CXX_COMPILER "/usr/bin/g++")
endif(${WIN} STREQUAL "OFF")
set(TARGET_NAME DpMoniter)
project(${TARGET_NAME})
源代碼目錄下新建build文件夾
#windows環境下: cmake -DWIN=ON -DCMAKE_BUILD_TYPE=Release/Debug ..
#非windows環境下: cmake -DWIN=OFF -DCMAKE_BUILD_TYPE=Release/Debug ..
if(${WIN} STREQUAL "ON")
add_definitions(-D UNIT_TEST)
add_definitions(-D _DEBUG)
add_definitions(-D _USE_STATIC_LIB)
add_definitions(-D THREADED)
add_definitions(-D CONSOLE)
endif(${WIN} STREQUAL "ON")
#添加CPP文件
aux_source_directory(. DIR_SRC)
#添加頭文件
include_directories("./")
#設置編譯參數
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11 -pthread")
#設置執行文件輸出目錄,bin,提前創建bin文件夾
SET(EXECUTABLE_OUTPUT_PATH ../bin)
#執行編譯
add_executable(${TARGET_NAME} ${DIR_SRC} ${SRC_BLL} ${SRC_COM} ${SRC_NET} ${SRC_RTCM} ${SRC_UTIL})
#設置DEBUG版(g)和RELEASE版(r)的后綴
set_target_properties(${TARGET_NAME} PROPERTIES DEBUG_POSTFIX "_g")
set_target_properties(${TARGET_NAME} PROPERTIES RELEASE_POSTFIX "_r")
#windows和linux分別設置鏈接庫位置
if(${WIN} STREQUAL "ON")
elseif(${WIN} STREQUAL "OFF")
endif(${WIN} STREQUAL "ON")
2.在build文件夾下
cmake -DWIN=OFF ..
3.直接make
make