CMakeLists文件示例
cmake_minimum_required(VERSION 3.5) #cmake最低版本要求
project(Test) #工程名
set(CMAKE_CXX_STANDARD 11) #c++11 设置
set(CMAKE_BUILD_TYPE DEBUG) # debug版
#add_subdirectory() 添加子目录 该目录下自动寻找对应的CMakeLists.txt文件
#set(COMMON_SRC ${SRC_ROOT_DIR}/Public/common/kingtbb.cpp) #将源文件设置到变量中
#add_library(common_lib STATIC ${COMMON_SRC}) 生成对应的静态库方便链接
#
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fPIC")
#如果要编译成可用gprof分析的版本,则在配置文件中加入:
#set(CMAKE_BUILD_TYPE Profile)
#set(CMAKE_CXX_FLAGS_PROFILE "-pg" )
add_compile_options(-std=c++11 -w)
#add_definitions(-std=c++11)
add_definitions(-g)
add_definitions(-Wno-deprecated-declarations)
aux_source_directory(./ SRCLIST) #将当前目录下的源文件 加到变量SRCLIST
aux_source_directory(./DataManger SRCLIST) #将当前目录下的DataManger 下的源文件 加到变量SRCLIST
include_directories("./") #头文件包含路径
include_directories("../../../MidWare") #头文件包含路径
include_directories("../../../Public") #头文件包含路径
link_directories("/usr/lib/x86_64-linux-gnu/c++11") #指定额外的库链接路径
add_executable(Test ${SRCLIST}
../../../Public/http/HttpClient.cpp
../../../Public/ServerNet/net/ClientSocket.cpp
../../../Public/ServerNet/net/CSession.cpp
../../../Public/ServerNet/net/ServerNet.cpp
../../../Public/common/CLongData.cpp
../../../Public/common/CommonFunc.cpp
../../../Public/common/kingtbb.cpp
../../../Public/stock/Stockdetail.cpp
)
#生成Test 程序依赖SRCLIST 和其他的cpp文件
target_link_libraries(Test dl libboost_locale.a libboost_system.a libboost_filesystem.a
pthread z rt libboost_thread.a libuuid.a libjansson.a libcurl.so stdc++ ${CMAKE_THREAD_LIBS_INIT})
#Test 需要链接的库
cmake_minimum_required(VERSION 3.5)
project(StockLib)
set(CMAKE_CXX_STANDARD 11)
set(CMAKE_BUILD_TYPE DEBUG)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fPIC")
add_definitions(-g)
add_definitions(-Wno-deprecated-declarations)
aux_source_directory(./ SRCLIST)
aux_source_directory(./DataManger SRCLIST)
include_directories("./")
include_directories("../../../MidWare")
include_directories("../../../Public")
add_library(StockLib STATIC ${SRCLIST}
../../../Public/http/HttpClient.cpp
../../../Public/ServerNet/net/ClientSocket.cpp
../../../Public/common/CLongData.cpp
../../../Public/common/CommonFunc.cpp
../../../Public/common/kingtbb.cpp
)
#此库文件依赖其他库
target_link_libraries(StockLib dl libboost_locale.a libboost_system.a libboost_filesystem.a
pthread z rt libboost_thread.a libuuid.a libjansson.a libcurl.so stdc++ ${CMAKE_THREAD_LIBS_INIT})
cmake使用过程
cmake使用过程
1. 在CMakeLists文件当前目录创建个build文件夹
2. cd build 然后执行cmake .. (补充:cmake .. -DCMAKE_BUILD_TYPE=Debug/Release 编译debug或者release版本)
3. 成功的话就会生成Makefile文件
4. 然后 make 就能编译