我们有一个跨平台的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目标构建良好,没有任何问题。
我尝试过,但没有效果:
这是项目的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")
我可能会缺少什么?
答案 0 :(得分:0)
我们设法通过一些独特的方法解决了这个问题。
在构建失败的框中,我们将ios.profile中的darwin-toolchain/1.0@theodelrieu/stable
更改为darwin-toolchain/1.0.4@theodelrieu/stable
(这是最近构建的最新版本)。一旦做到这一点,盒子就可以正确地构建所有东西。这是我们与Conan一起使用的工具链,能够针对iOS进行编译。
百万美元的问题是-为什么使用去年8月发行的darwin-toolchain版本的另一个构建该项目的框好呢?可能是柯南的错误。