gpt4 book ai didi

cmake - 如何使用 cmake 自动构建第三方库

转载 作者:行者123 更新时间:2023-12-04 08:55:56 29 4
gpt4 key购买 nike

我在找什么:
下载库
提取它
应用自定义补丁
运行配置
运行构建命令
我正在尝试构建的库是:

  • OpenSSL
  • 助推
  • 节俭
  • C战神
  • 卷发
  • 聚合 enzyme 链 react
  • Nginx
  • 重症监护室
  • JsonCPP

  • 我想我可以使用外部模块来做这些事情: http://cmake.org/cmake/help/v2.8.8/cmake.html#module:ExternalProject

    但我有以下问题?
  • 我有不同类型的构建和不同的目录。是吗
    将为每个不同的目标构建所有这些库?如是
    这将是痛苦的,因为所有这些库都需要一个小时来构建。是
    有一种方法可以控制它,它只构建一次。作为图书馆
    所有这些目标都保持不变。
  • 将目录切换到不同的名称。 Cmake强制一切
    被重建。外部库是否相同。如是?如何
    解决这个问题。如果我不是,我不想重建图书馆
    更改它们并希望在切换到不同的时使用它们
    分支而不构建它们。
  • 最佳答案

    是的,您可以使用 CMake 的 ExternalProject 功能来完成您想做的事情。

    结合外部项目使用交叉编译时,每个工具链都会编译一次源代码。如果您将构建结果 checkin 源代码控制系统,并在每个新人的机器上重新 checkout ,您可以避免重新构建,但我不建议这样做。相反,让您的“设置新计算机”任务之一实际上允许编译在一夜之间运行,这也将作为机器实际可用的测试。该设置任务可以由系统管理员在新员工到来之前启动,或者您可以根据情况将其留给新员工。

    我不完全确定您在第二个问题中要问什么,但是如果库未更改,CMake 将检测到它未更改并且不会重新编译它。通常,源代码将位于单个目录树中:每个编译版本都将构建在不同的位置。因此,开发人员只需切换目录即可随时访问任何编译后的版本。这特别有用,因为它允许您通过 NFS 将这些目录挂载到嵌入式硬件等。

    关于cmake - 如何使用 cmake 自动构建第三方库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11728216/

    29 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com