(C++ STL _ CMake ) —— 利用CMake来构建STL的学习项目的步骤

Posted 赵萱婷

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了(C++ STL _ CMake ) —— 利用CMake来构建STL的学习项目的步骤相关的知识,希望对你有一定的参考价值。

利用CMake来构建STL的学习项目的步骤

     在日常的C++开发过程中,我们会经常使用到STL最为赋能加速开发的一个基本库,那么在有一定的C++的语言的基础上,学习如何使用STL是一件非常有益与后续有益于自己面对更加复杂的需求和日常开发赋能的,因此,本人虽然工作了有一段时日了,准备开始写一系列专栏记录自己重温STL的一些用法,并加深自己对于STL的理解和运用的过程,本系列文章主要用于自己复习和参考使用,如果您看到感兴趣了也可以跟我一并一起进一步学习和探讨。

     然后建议是,阅读本文章之前,先抽空去了解一下CMake的基础,没有CMake的基础可能会有点吃力,不过这个项目用到的CMake的内容也非常少,所以不需要太担心,都是可以依葫芦画瓢画出来的东西。

个人介绍

作者: 赵萱婷
简介: 一个在工业软件领域摸爬滚打的新人,毕业于华科软院的一个普通人,希望未来能够在工业设计软件领域深耕越走越远的软件工程师。
个人格言:用心去感受你自己需要坚持的生活,未来慢慢会给你答案的。
知乎:https://www.zhihu.com/people/Tom_Zhao
STL项目地址: https://gitee.com/zhaotianyuCoding/using-stlex

     个人编写的项目地址如下:UsingSTLEx

编译必要

  1. 系统中必须要有CMake,可以去CMake官网里面下载最新的版本即可。
  2. Windows平台上建议需要安装VisualStudio,版本倒是无所谓,2010都行,具体可以去Visual Studio里面下载即可。

概述

     在有了上述的环境基础之后,就可以开始编译这个项目来使用我学习STL的一些代码了,主要就是一些简单的example,我这个项目代码写的不复杂,就是很纯粹的STL的使用,平时的一些编码习惯和一些基础的文件我都不会带进来,就是以一种初学者的心态来编写学习STL的代码。

本项目主要是用于自己学习和使用STL中的一些概念的学习实验性项目,为了方便,建立了一个简单的CMake的体系方便管理和使用,具体生成项目的步骤如下:

  1. 首先在自己的目录下创建一个build目录;
  2. 在命令行里面 cd build
  3. 直接 cmake .. 即可,注意这种情况一定要将build放在项目文件夹内,不然需要自己寻找CMakeLists.txt的位置;
  4. 打开生成的SLN,编译,自己运行每个example的项目即可。

项目基本结构介绍


     个人简历的项目结构目前是分3级别进入到具体的exe项目的创建,每一个exe对应的是某一个知识点的某一个函数的运用的一个独立的cpp文件,因此就是比较分散的项目结构。那么首先来介绍第一级的总体项目的CMakeLists是怎么写的吧:

#[================================================================[.rst:
    Copyright (c)2021, Tom Zhao personal. ("UsingSTLEx")
    This software is a personal tools project by Tom Zhao.
    Description:
#]================================================================]

cmake_minimum_required(VERSION 3.1.0 FATAL_ERROR)

set(TZ_USING_STL_NAME UsingSTLProject)

set(TZ_USING_STL_INCLUDE
    include
)

set_property(GLOBAL PROPERTY USE_FOLDERS ON)

project(${TZ_USING_STL_NAME})

add_definitions(
    -wd4819
)

add_subdirectory(UsingString)

     之后就进入到对应的子目录了,子目录里面建立了对于某个容器或者某个知识点的区分的目录,因此需要进一步添加下面的CMakeLists:

#[================================================================[.rst:
    Copyright (c)2021, Tom Zhao personal. ("UsingSTLEx")
    This software is a personal tools project by Tom Zhao.
    Description:
#]================================================================]

add_subdirectory(Constructure)
add_subdirectory(Operator)
add_subdirectory(Append)
add_subdirectory(FindAndReplace)
add_subdirectory(GetAndSet)
add_subdirectory(Compare)
add_subdirectory(InsertAndDelete)
add_subdirectory(SubStr)

     最终就进入到了对应的具体的项目的目录了,这个目录中每个都是一个独立的项目,具体的CMakelists举例而言如下所示:

#[================================================================[.rst:
    Copyright (c)2021, Tom Zhao personal. ("UsingSTLEx")
    This software is a personal tools project by Tom Zhao.
    Description:
#]================================================================]

set(TZ_MAIN_NAME StringAppend)

set(TZ_MAIN_INCLUDE

)

set(TZ_MAIN_INC

)

set(TZ_MAIN_SRC
	main.cpp
)

add_executable(${TZ_MAIN_NAME}
	${TZ_MAIN_INCLUDE}
	${TZ_MAIN_INC}
	${TZ_MAIN_SRC}
)

set_property(TARGET ${TZ_MAIN_NAME} PROPERTY FOLDER "UsingString")

     根据上面的步骤之后,在对应的目录下创建build的目录,并利用命令行进行cmake ..就可以得到如下的一个visualStudio上面的项目:

个人格言

用心去感受你自己需要坚持的生活,未来慢慢会给你答案的。

以上是关于(C++ STL _ CMake ) —— 利用CMake来构建STL的学习项目的步骤的主要内容,如果未能解决你的问题,请参考以下文章

(C++ STL _ CMake ) —— 利用CMake来构建STL的学习项目的步骤

(C++ STL _ CMake ) —— 利用CMake来构建STL的学习项目的步骤

(C++基础_STL) —— 初识STL

(C++基础_STL) —— 初识STL

(C++基础_STL) —— 初识STL

(C++基础_STL) —— vector 类的基本应用