MacOS使用CMake

这篇具有很好参考价值的文章主要介绍了MacOS使用CMake。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

CMake是开源、跨平台的编译和打包工具,在有跨平台需求的项目里面,CMake是常用的工具。它可以根据目标平台生成不同的Makefile或者工程文件,生成Makefile后使用make编译代码。本文介绍CMake的安装和入门使用。

安装CMake

使用brew安装cmake,等待安装完成即可

brew install cmake

如果没有homebrew,首先要安装homebrew

使用CMake

新建一个项目文件夹CMakeProject,目录下新建一个C++文件CMakeTest.cpp,写入以下代码

#include <iostream>

int main() {
    std::cout << "hello world" << std::endl;
}

在目录下新建CMakeLists.txt文件,写入以下配置。PROJECT用于设置工程名称,ADD_EXECUTABLE的第一个参数为可执行文件名称,第二个参数为源代码文件。

PROJECT(HELLO)
ADD_EXECUTABLE(cmakeTest "CMakeTest.cpp")

在目录下执行cmake . 命令,目录下会生成Makefile,CMakeCache.txt,cmake_install.cmake等文件,接下来的make命令会用到Makefile文件。

执行make命令,当前目录下会生成cmakeTest可执行文件。在命令行中直接输入cmakeTest,终端中输出了hello world

CMake工具已经正常安装和运行了。

优化工程目录

在上面的介绍中,我们已经让CMake正常运行起来,但还有点工程问题。工程目录里面多了很多文件,并且和源码混合在一起,为了隔离CMake产生的文件和源码,我们需要新建build目录用于存放CMake的产物,新建src目录用于单独存放源码文件。注意这个时候,src目录下面也要新建一个CMakeLists.txt文件。
MacOS使用CMake
src目录下面的CMakeLists.txt文件写入配置

ADD_EXECUTABLE(cmakeTest "CMakeTest.cpp")

项目根目录下的CMakeLists.txt需要改为

PROJECT(HELLO)
ADD_SUBDIRECTORY(src bin)

这里的ADD_SUBDIRECTORY为添加子目录,第一个参数为源码的目录名称,第二个为生成的产物的目录

在build目录下执行命令cmake … 注意这里要使用…,因为项目根目录的CMakeLists.txt在上层文件夹。

执行成功后再执行make命令,此时build目录会生成bin目录,cd到bin目录,直接输入cmakeTest,终端里面输出了hello world

此时工程项目目录已经改造完成了。文章来源地址https://www.toymoban.com/news/detail-450382.html

到了这里,关于MacOS使用CMake的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Spacedrive:开源跨平台文件管理 | 开源日报 No.57

    Stars: 91.2k License: MIT Deno 是一个简单、现代和安全的 JavaScript 和 TypeScript 运行时,使用 V8 引擎并用 Rust 构建。其主要功能包括: 默认情况下具有高度安全性,除非显式启用,否则无法访问文件、网络或环境。 提供 Web 平台功能和 API (如 ES 模块、Web Workers 和 fetch())。 开箱即用

    2024年02月08日
    浏览(37)
  • 【C++】开源:跨平台轻量日志库easyloggingpp

    😏 ★,° :.☆( ̄▽ ̄)/$: .°★ 😏 这篇文章主要介绍跨平台轻量日志库easyloggingpp。 无专精则不能成,无涉猎则不能通。。——梁启超 欢迎来到我的博客,一起学习,共同进步。 喜欢的朋友可以关注一下,下次更新不迷路🥞 项目Github地址: https://github.com/abumq/easyloggingpp Eas

    2024年02月16日
    浏览(43)
  • FFmpeg——开源的开源的跨平台音视频处理框架简介

    引言:         FFmpeg是一个开源的跨平台音视频处理框架,可以处理多种音视频格式。它由Fabrice Bellard于2000年创建,最初是一个只包括解码器的项目。后来,很多开发者参与其中,为FFmpeg增加了多种新的功能,例如编码器、过滤器、muxer、demuxer等等,使它成为了一个完整

    2024年03月23日
    浏览(44)
  • CPF C#跨平台UI框架开源了

    C#跨平台UI框架 提供NETStandard2.0和net4的库,通过Netcore可以跨平台,支持Windows、Mac、Linux,Net4的可以支持XP。 各个平台运行效果一致,不依赖系统控件。 支持窗体,控件任意透明,支持异形窗体,支持SVG图标显示。 支持动画,数据绑定,Mvvm模式,CSS等,简化依赖属性,数据绑

    2024年02月05日
    浏览(36)
  • 开源的跨平台的音视频处理工具FFmpeg

    FFmpeg是一个开源的跨平台的音视频处理工具,可以对音频、视频进行转码、裁剪、调节音量、添加水印等操作。 广泛的格式支持。 FFmpeg能够解码、编码、转码、复用、分离、流式传输、过滤和播放几乎人类和机器所创造的任何内容。它支持最古老且晦涩难懂的格式,也支持

    2024年02月15日
    浏览(38)
  • .NET开源、跨平台的本地日记APP - SwashbucklerDiary

    今天给大家推荐一个.NET开源、跨平台的本地日记APP:SwashbucklerDiary「 侠客日记 」。 每个人的心底都有一个侠客,如影随风,陪你看过一路的风景,记得你所有的精彩。 MAUI Blazor Hybrid Masa Blazor SqlSugar Serilog .NET 多平台应用 UI (.NET MAUI) 是一个跨平台框架,用于使用 C# 和 XAML 创

    2024年02月08日
    浏览(41)
  • DBeaver:开源、跨平台、强大的数据库管理工具

    1.DBeaver 是什么 DBeaver 是一个流行的开源数据库客户端,它可以用于连接和管理多种不同类型的数据库系统,包括 MySQL、PostgreSQL、Oracle、Microsoft SQL Server 等等。 DBeaver 提供了一种直观的用户界面,允许用户执行各种数据库操作,如查询、修改、备份等等,同时也提供了一些高

    2024年01月25日
    浏览(55)
  • 一个基于.NET Core开源、跨平台的仓储管理系统

    今天给大家推荐一个基于.NET Core开源、跨平台的仓储管理系统,数据库支持MSSQL/MySQL:ZEQP.WMS。 仓储管理系统(Warehouse Management System,WMS)是一种用于管理和控制仓库操作的软件系统,它可以帮助企业实现对仓库内物品的跟踪、存储、拣选、包装和发运等全过程管理,提高仓

    2024年02月21日
    浏览(40)
  • 跨平台的桌面应用程序开发框架Electron | 开源日报 0906

    Stars: 109.3k License: MIT Electron 是一个基于 Node.js 和 Chromium 的开源框架,允许使用 JavaScript、HTML 和 CSS 编写跨平台的桌面应用程序。它被 Atom 编辑器等众多应用程序所采用。该项目具有以下核心优势: 跨平台:Electron 提供了 macOS、Windows 和 Linux 三个主要操作系统的二进制文件。

    2024年02月09日
    浏览(42)
  • SecureCRT & SecureFX 9.5 for macOS, Linux, Windows 下载 - 跨平台的多协议终端仿真和文件传输

    SecureCRT SecureFX 9.5 for macOS, Linux, Windows 下载 - 跨平台的多协议终端仿真和文件传输 请访问原文链接:SecureCRT SecureFX 9.5 for macOS, Linux, Windows,查看最新版。原创作品,转载请保留出处。 作者主页:sysin.org SecureCRT 客户端运行于 Windows、Mac 和 Linux,将坚如磐石的终端仿真与强大的

    2024年02月21日
    浏览(30)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包