【问题标题】:Building libgit2 static libraries with brew使用 brew 构建 libgit2 静态库
【发布时间】:2014-12-28 21:55:12
【问题描述】:

我想用 brew 构建 libgit2 的静态库。默认情况下,二进制文件只包含动态库:

brew install libgit2

根据 libgit2 文档,我们需要将 -DBUILD_SHARED_LIBS=OFF 传递给 cmake。如何让 brew 将参数传递给 cmake?我试过了:

brew install libgit2 -DBUILD_SHARED_LIBS=OFF --build-from-source

但这并没有奏效。

【问题讨论】:

    标签: macos cmake homebrew libgit2


    【解决方案1】:

    -DBUILD_SHARED_LIBS=OFF 附加到您使用的libgit2 formula 中使用的cmake 参数:

    def install
      args = std_cmake_args
      ...
      args << "-DBUILD_SHARED_LIBS=OFF"
      ...
    

    【讨论】:

    • 是的,但我如何通过 brew 传递它?
    • 您必须编辑公式。输入“brew edit libgit2”。这将显示一个 ruby​​ 文件。将 Peter 共享的代码包含到文件中。
    • @Peter,一旦我使用“brew edit ...”编辑公式,我们如何再次触发它?
    • 当我试图弄清楚一些事情并且我有最后一条评论时,我讨厌它......但我想这比成为 OP 更好
    【解决方案2】:

    这对我有用,如果你只对生成静态库感兴趣,你可以试试这个。

    1. 使用 brew 安装 libgit2

    brew 安装 libgit2

    这将安装构建 libgit2 所需的所有依赖项

    1. https://github.com/libgit2/libgit2下载libgit2代码并手动编译。请按以下步骤操作:

    cd SOURCE_DIRECTORY

    mkdir 构建

    // 如果要将二进制文件安装到本地文件夹中,请执行此操作。

    mkdir 安装

    cd 构建

    cmake .. -DCMAKE_OSX_ARCHITECTURES="i386;x86_64" -DCMAKE_INSTALL_PREFIX=/SOURCE_DIRECTORY/install -DBUILD_SHARED_LIBS=OFF

    cmake --build 。 --目标安装

    "-DCMAKE_INSTALL_PREFIX" 指定要安装二进制文件的文件夹。选择任何文件夹。

    这会在“/SOURCE_DIRECTORY/install/lib”文件夹中生成静态库

    【讨论】:

      猜你喜欢
      • 2018-10-05
      • 1970-01-01
      • 2013-06-10
      • 1970-01-01
      • 1970-01-01
      • 2011-08-09
      • 1970-01-01
      • 2012-03-15
      • 2017-02-24
      相关资源
      最近更新 更多