Windows上的使用是用VS2022创建一个cmake项目

然后就可以自动生成CMakeLists.txt和对应的cpp和头文件,其中CMakeLists.txt是最关键的,后面那两个没有也行,自己建cpp文件和头文件。

这个CMakeLists.txt的配置是:

#这个是版本号,也可以不用写,如果版本低,就别写。

cmake_minimum_required (VERSION 3.8)

#这个是项目名称,也就是放CMakeLists.txt的文件夹
project(CMakeProject2)

#这个sb是个变量,src是个目录,./src就是文件的地址,这个sb存的就是src里面的所有可编译文件。

aux_source_directory(./src sb)

#这个是生成可执行文件,CMakeProject2这个就是可执行文件名默认是不加.exe后缀的,这个可以自己取不要急,CMakeProject2.cpp就是你c加加的文件

add_exEcutable(CMakeProject2 ${sb} CMakeProject2.cpp)

这个单目录就实现了。后面就可以cmake . 和make了。

这个多目录就是在原来的基础上加了include_directories("./src")这个是引用目录,就是在这个上,你不同目录的cpp就可以include 其他cpp文件或者头文件。

add_subdirectory(src)#添加外部目录

最后是target_link_libraries(可执行文件   其他cpp文件),这个其他cpp文件在这个时候应该是dll文件或者lib文件。

其他目录,就比如说我的src目录,也要有一个CMakeLists.txt文件,这个文件是为了说明这个目录里面的cpp文件是干什么的

这个就是src里面的CMakeLists.txt文件里面的全部代码,第一行代码还是之前说的,用一个变量去存储这个文件里面的所有可编译文件,这个.就是这个目录里面的,(代表地址)

先 cmake .这个src里面的并且make,它会自动生成。

当然如果使用vs2022,就只需要运行一下并保存,编译器自动会cmake和make。

后面就是cmake . 主目录的并且make,就大功告成了,如果不加shared的话就是静态库,当然如果不喜欢搞这个静态和动态库的话,也可以不这样搞

如果不搞动态库和静态库就要这样写主目录的CMakeLists.txt,并且不需要其他目录的CMakeLists.txt

看看我的其他目录没有CMakeLists.txt文件

这个是不使用静态库和动态库的方法。

注意:每次修改CMakeLists.txt时都要手动保存,按键是Ctrl +S

这个是Windows的,还有Linux的

Linux的其实操作是一样的,毕竟cmake是跨平台的

cmake的单目录和多目录的使用(Linux和Windows)的更多相关文章

  1. CMake在Visual Studio下保持目录结构

    CMake在Visual Studio下保持目录结构 原理 主要通过CMAKE自带函数source_group来设定. 需要把add_executable()函数进行封装,包裹一层source_gro ...

  2. Linux编译Windows共享目录下代码

    Linux编译Windows共享目录下代码(金庆的专栏)万神服务器代码是跨平台的.平时策划在Windows上开自己的服务器测试,测试和发布服务器为Linux.开发时,先在Windows上编译测试,再到 ...

  3. Linux目录结构 重要目录结构详细

    1.1 /etc/hosts ip地址与主机名(域名)的对应关系  解析主机名  ping www.baidu.com 解析成10.0.0.200 1.产品测试 2  用主机名互相访问 1.2 /et ...

  4. 在Linux下和Windows下遍历目录的方法及如何达成一致性操作

    最近因为测试目的需要遍历一个目录下面的所有文件进行操作,主要是读每个文件的内容,只要知道文件名就OK了.在Java中直接用File类就可以搞定,因为Java中使用了组合模式,使得客户端对单个文件和文件 ...

  5. Swift - 文件目录路径获取及数据储存(Home目录,文档目录,缓存目录)

    iOS应用程序只能在自己的目录下进行文件的操作,不可以访问其他的存储空间,此区域被称为沙盒.   应用沙盒结构分析 1.应用程序包:包含了所有的资源文件和可执行文件 2.Documents:保存应用运 ...

  6. JavaWeb学习之tomcat安装与运行、tomcat的目录结构、配置tomcat的管理用户、web项目目录、虚拟目录、虚拟主机(1)

    1.tomcat安装与运行双击tomcat目录下的bin/startup.bat,启动之后,输入http://localhost:8080,出现安装成功的提示,表示安装tomcat成功 2.tomca ...

  7. 使用scp将文件/目录拷贝到另一台Linux主机上

    如何将一台Linux主机上的文件或目录拷贝到另一台Linux主机上,scp命令可以实现该需求 前提条件:两台Linux主机处于同一网段,可以互相ping通 操作如下: 文件拷贝 ①将本地文件拷贝到远端 ...

  8. SVN的文件夹链接(目录链接,目录映射,svn:externals)

    首先大家可以看下SVN的文件夹链接太强大了!(目录链接,目录映射,svn:externals),我就是看了这篇文章才敢大刀阔斧的把项目里的外链修改成正确的链接. 问题: 我们的项目里,服务器脚本工程s ...

  9. 0816 1459 json & pickle ,目录导入,目录规范

    ---恢复内容开始--- 1.json & pickle 磁盘上只能存储字符串或二进制数据,直接存字典.列表.元组等是存不了的,所以需要把各种数据转换成字符串格式,然后再存到硬盘. 直接将一个 ...

  10. du -sh 目录名称 查看目录大小

    du -sh 目录名称 查看目录大小 df -h 查看磁盘使用情况

随机推荐

  1. 集训后的一些wp

    新生赛后 0x01 2048(jk出发) 修改跳转条件为nop,随便动一下直接打印flag.这个场景我幻想过很久了,一直没做到,这次参考wp做出来了知道怎么做了.学到! 0x02 four(dsact ...

  2. ETL之apache hop系列3-hop Server环境部署与客户端发布管道工作流

    前言 该文档主要是apache hop 2.5的 Windows 10和Linux docker环境部署和客户端发布工作流和管道的相关内容 不使用Docker直接使用应用程序包,下载压缩包文件后,需要 ...

  3. 如何通过API接口获取微店的商品详情

    微店是一款电商平台,对于商家而言,了解商品详情数据是非常重要的.通过API接口获取微店的商品详情,可以让商家更加便捷地管理和分析商品数据.下面就让我们详细了解一下如何通过API获取微店的商品详情. 第 ...

  4. Codeforces 1254B1 - Send Boxes to Alice (Easy Version)

    题意 有\(n(1\leq n\leq 10^5)\)个盒子,每个盒子有\(a_i(0\leq a_i \leq 1)\)个糖果,你每一次可以将第\(i\)个盒子里的糖果放到第\(i-1\)或\(i+ ...

  5. WPF 自定义窗体(一)

    .Net默认的窗体样式只有四种:None.SingleBorderWindow.ThreeDBorderWindow.ToolWindow,都比较"丑".而很多时候,我们希望自定义 ...

  6. Ionic 整合 pixi.js

    最近做了个app,上线google play不大顺利,说是有假冒行为,然后改了下icon和名字以及描述,但是没啥信息去上,于是暂时放下搞点别的. 因为近期看到个比较有趣的绘图创意, 于是想通过ioni ...

  7. Linux系列教程——Shell、Linux文件管理

    文章目录 Shell 1.什么是Bash shell(壳) 2.Bash Shell能干什么? 3.平时我们如何使用Shell呢? 4.Shell提示符 5.Shell基础语法 2.Bash Shel ...

  8. 深入理解java和dubbo的SPI机制

    1 SPI简介 1.1 SPI(Service Provider Interface) 本质:将接口实现类的全限定名配置在文件中,并由服务加载器读取配置文件,加载实现类.这样可以在运行时,动态为接口替 ...

  9. SQL 语句 增删改查、边学习边增加中..... 这一部分为select

    SQL语句按照最大的类别分为 1.增加 insert 2.删除 delete  https://www.cnblogs.com/kuangmeng/p/17756654.html 3.修改update ...

  10. DHorse v1.4.2 发布,基于 k8s 的发布平台

    版本说明 优化特性 在集群列表增加集群版本: 修改Jvm的GC指标名: 解决问题 解决shell脚本换行符的问题: 解决部署历史列表页,环境名展示错误的问题: 解决指标收集功能的异常: 升级指南 升级 ...