【问题标题】:swift build - default arguments (c++ package)快速构建 - 默认参数(C++ 包)
【发布时间】:2021-07-29 10:52:15
【问题描述】:

我有多个生成跨平台库(iOS、macOS)的 Swift 包。

我正在尝试构建这些包(作为 CI 的一部分),并得到以下观察结果:

运行swift build时:

swift build
[1/1] Build complete!

那么,当具体指定iOS Simulator时:

xcodebuild -showsdks                 

iOS SDKs:
    iOS 15.0                        -sdk iphoneos15.0

iOS Simulator SDKs:
    Simulator - iOS 15.0            -sdk iphonesimulator15.0

macOS SDKs:
    macOS 12.0                      -sdk macosx12.0


swift build --sdk iphonesimulator15.0
clang: warning: no such sysroot directory: '/Users/louis/Code/json/iphonesimulator15.0' [-Wmissing-sysroot]
In file included from /Users/louis/Code/json/_SwiftPackageManagerFile.cpp:5:
In file included from /Users/louis/Code/json/single_include/nlohmann/json.hpp:37:
In file included from /Applications/Xcode-beta.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../include/c++/v1/algorithm:641:
In file included from /Applications/Xcode-beta.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../include/c++/v1/cstring:60:
/Applications/Xcode-beta.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../include/c++/v1/string.h:60:15: fatal error: 'string.h' file not found
#include_next <string.h>

当我尝试不同的 SDK 时得到完全相同的错误,例如: swift build --sdk macosx12.0

swift build 怎么能成功,但每当我指定一个 SDK 时它就会失败?默认的 SDK 是什么?

注意:我使用的包是 C++ 包。

【问题讨论】:

  • 机器上运行的是什么版本的 xcode-select?
  • Xcode 12.5.1 12E507 和 Xcode 13.0 13A5201i 两者都给出了与我的问题相同的结果。
  • 您的 bash 个人资料中有 CMAKE_SYSROOT 吗?我看到人们在 c++ 空间中发布的类似错误
  • 不,我没有设置那个变量。我应该把它设置成什么?我正在使用带有最新 Xcode 的标准 macOS。
  • 你知道...我不确定,我没有用 C++ 做过任何事情但是我在这里看到了类似的错误和答案stackoverflow.com/a/63188875/9333764

标签: c++ ios swift macos swift-package-manager


【解决方案1】:

试试这个标志。

swift build -v 

-v, --verbose 增加信息输出的详细程度

它在我的机器上打印以下字符串:

还有很多附加信息)

【讨论】:

  • 谢谢,但是为什么在运行swift build(成功)和swift build --sdk macosx(由于问题中提到的字符串错误而失败)时输出和结果差异如此之大?
【解决方案2】:

这行得通:

swift build -Xswiftc "-sdk" -Xswiftc "$(xcrun --sdk iphonesimulator --show-sdk-path)" -Xswiftc "-target" -Xswiftc "x86_64-apple-ios14.0-simulator"

【讨论】:

    猜你喜欢
    • 2014-07-09
    • 1970-01-01
    • 2016-01-06
    • 2020-12-02
    • 1970-01-01
    • 2012-02-26
    • 2016-03-01
    • 1970-01-01
    • 2010-12-01
    相关资源
    最近更新 更多