C ++项目依赖项无法在特定的macOS盒上编译

时间:2019-02-21 05:48:15

标签: c++ xcode build cmake conan

我们有一个跨平台的C ++项目,该项目将CMake用于构建系统,将柯南用于依赖项管理。

在特定的macOS计算机上构建时,构建失败(build log)。在运行相同版本的操作系统,CMake,Xcode和Conan的另一台macOS计算机上, not 不会失败(柯南版本:macOS 10.14.3(18D109)和CMake 3.14.0上的1.12.3) -rc2)。这是an example of the successful build

两个构建日志都是由构建机器上不存在〜/ .conan目录的构建生成的。

请注意,对于iOS目标,仅构建 失败。同一盒上的macOS目标构建良好,没有任何问题。

我尝试过,但没有效果:

  • Nuking〜/ .conan
  • 卸载并重新安装Xcode

这是项目的conanfile.py:

from conans import ConanFile, CMake
from conans.tools import os_info


class SphereGameConan(ConanFile):
    generators = "cmake"
    settings = "arch", "build_type", "compiler", "os"
    requires = (
        "gtest/1.8.1@bincrafters/stable",
        "spdlog/1.3.0@bincrafters/stable",
    )

    def requirements(self):
        if self.settings.os == "Windows" or self.settings.os == "Macos":
            self.requires("glfw/3.2.1@bincrafters/stable")

我可能会缺少什么?

1 个答案:

答案 0 :(得分:0)

我们设法通过一些独特的方法解决了这个问题。

在构建失败的框中,我们将ios.profile中的darwin-toolchain/1.0@theodelrieu/stable更改为darwin-toolchain/1.0.4@theodelrieu/stable(这是最近构建的最新版本)。一旦做到这一点,盒子就可以正确地构建所有东西。这是我们与Conan一起使用的工具链,能够针对iOS进行编译。

百万美元的问题是-为什么使用去年8月发行的darwin-toolchain版本的另一个构建该项目的框好呢?可能是柯南的错误。