栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

C++ 工程CMakeLists.txt编写

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

C++ 工程CMakeLists.txt编写

C++ 工程CMakeLists.txt编写 CMakeLists根据文件分层设计

如下图所示,在每一层的文件内都有一个CMakeLists.txt 文件,从图中从上到下分别可以认为是顶层CMakeLists, 各种子目录下的底层CMakeLists。

顶层 CMakeLists 设计
cmake_minimum_required(VERSION 3.1)

project(ThreadPool)

#判断编译器类型,如果是gcc编译器,则在编译选项中加入c++11支持
if(CMAKE_COMPILER_IS_GNUCXX)
    set(CMAKE_CXX_FLAGS "-std=c++11 ${CMAKE_CXX_FLAGS}")
    message(STATUS "optional:-std=c++11 ")   
endif(CMAKE_COMPILER_IS_GNUCXX)

#添加头文件所在文件位置
include_directories(${PROJECT_SOURCE_DIR}/threadPool)

#设置生成库文件位置
set(LIBRARY_OUTPUT_PATH ${PROJECT_BINARY_DIR}/lib)
#设置生成可执行文件位置
set(EXECUTABLE_OUTPUT_PATH ${PROJECT_BINARY_DIR}/bin)
#设置生成库名称
set(Lib_ThreadPool "_ThreadPool")

#添加子文件夹
add_subdirectory(threadPool)
add_subdirectory(test)
插入代码片

threadpool子文件下 CMakeLists 设计
cmake_minimum_required(VERSION 3.1)
project(threadpool)

file(GLOB_RECURSE threadpool_src_cpp ${CMAKE_CURRENT_SOURCE_DIR}/*.cpp)
#生成共享lib库
add_library(${Lib_ThreadPool} SHARED ${threadpool_src_cpp})
test子文件下 CMakeLists 设计
cmake_minimum_required(VERSION 3.1)
project(threadPoolTest)

file(GLOB_RECURSE threadPoolTest_SRC_CPP ${CMAKE_CURRENT_SOURCE_DIR}/*.cpp)
#生成可执行文件
add_executable(${PROJECT_NAME} ${threadPoolTest_SRC_CPP})
#链接所需的库文件
target_link_libraries(${PROJECT_NAME} ${Lib_ThreadPool} pthread)
最后编译

最终编译会自动生成一个bin、lib文件,分别存放可执行文件与共享库文件

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/938509.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号