MakeFile的制作
2021-04-16 本文已影响0人
美雨知春
利用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