繁体   English   中英

Swift命令行工具以调试模式构建,但未发布

[英]Swift commandline tool builds in debug mode but not in release

我正在尝试构建此命令行工具: https : //github.com/kindlychung/swiftsci

在调试模式下,它可以正常编译,并且二进制文件可以按预期工作。 但是当我在发布模式下构建时,出现以下错误:

Information:Building target 'swiftsci' from 'swiftsci' with configuration 'Release' for architecture 'x86_64' using 'OS X 10.11' sdk
Error:Build failed in 6s 446ms
Note:Write auxiliary files
Note:write-file /Users/kaiyin/appcodeProjects/swiftsci/Build/Intermediates/swiftsci.build/Release/swiftsci.build/swiftsci-all-target-headers.hmap
Note:write-file /Users/kaiyin/appcodeProjects/swiftsci/Build/Intermediates/swiftsci.build/Release/swiftsci.build/swiftsci-project-headers.hmap
Note:write-file /Users/kaiyin/appcodeProjects/swiftsci/Build/Intermediates/swiftsci.build/Release/swiftsci.build/swiftsci.hmap
Note:/bin/mkdir -p /Users/kaiyin/appcodeProjects/swiftsci/Build/Intermediates/swiftsci.build/Release/swiftsci.build/Objects-normal/x86_64
Note:write-file /Users/kaiyin/appcodeProjects/swiftsci/Build/Intermediates/swiftsci.build/Release/swiftsci.build/Objects-normal/x86_64/swiftsci-OutputFileMap.json
Note:write-file /Users/kaiyin/appcodeProjects/swiftsci/Build/Intermediates/swiftsci.build/Release/swiftsci.build/swiftsci-generated-files.hmap
Note:write-file /Users/kaiyin/appcodeProjects/swiftsci/Build/Intermediates/swiftsci.build/Release/swiftsci.build/swiftsci-all-non-framework-target-headers.hmap
Note:write-file /Users/kaiyin/appcodeProjects/swiftsci/Build/Intermediates/swiftsci.build/Release/swiftsci.build/swift-overrides.hmap
Note:write-file /Users/kaiyin/appcodeProjects/swiftsci/Build/Intermediates/swiftsci.build/Release/swiftsci.build/swiftsci-own-target-headers.hmap
Note:write-file /Users/kaiyin/appcodeProjects/swiftsci/Build/Intermediates/swiftsci.build/Release/swiftsci.build/Objects-normal/x86_64/swiftsci.LinkFileList
x86_64
Note:0  swift                    0x000000010997bfbb llvm::sys::PrintStackTrace(__sFILE*) + 43
Note:1  swift                    0x000000010997c6fb SignalHandler(int) + 379
Note:2  libsystem_platform.dylib 0x00007fff88ca8f1a _sigtramp + 26
Note:3  libsystem_platform.dylib 0x0005000200000005 _sigtramp + 1999991045
Note:4  swift                    0x0000000107d5eb29 (anonymous namespace)::SILClosureSpecializerTransform::run() + 9433
Note:5  swift                    0x0000000107cd8d99 swift::SILPassManager::runOneIteration() + 1689
Note:6  swift                    0x0000000107cd73cb swift::runSILOptimizationPasses(swift::SILModule&) + 651
Note:7  swift                    0x0000000107a6cb16 performCompile(swift::CompilerInstance&, swift::CompilerInvocation&, llvm::ArrayRef<char const*>, int&) + 11830
Note:8  swift                    0x0000000107a69ad3 frontend_main(llvm::ArrayRef<char const*>, char const*, void*) + 2691
Note:9  swift                    0x0000000107a66154 main + 2324
Note:10 libdyld.dylib            0x00007fff86ce15c9 start + 1
Note:Stack dump:
Note:0. Program arguments: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/swift -frontend -c /Users/kaiyin/appcodeProjects/swiftsci/swiftsci/main.swift /Users/kaiyin/appcodeProjects/swiftsci/docopt/Extensions/String.swift /Users/kaiyin/appcodeProjects/swiftsci/docopt/Docopt.swift /Users/kaiyin/appcodeProjects/swiftsci/docopt/Either.swift /Users/kaiyin/appcodeProjects/swiftsci/docopt/Option.swift /Users/kaiyin/appcodeProjects/swiftsci/docopt/Tokens.swift /Users/kaiyin/appcodeProjects/swiftsci/docopt/Command.swift /Users/kaiyin/appcodeProjects/swiftsci/docopt/Pattern.swift /Users/kaiyin/appcodeProjects/swiftsci/docopt/Argument.swift /Users/kaiyin/appcodeProjects/swiftsci/docopt/Optional.swift /Users/kaiyin/appcodeProjects/swiftsci/docopt/Required.swift /Users/kaiyin/appcodeProjects/swiftsci/docopt/OneOrMore.swift /Users/kaiyin/appcodeProjects/swiftsci/docopt/DocoptError.swift /Users/kaiyin/appcodeProjects/swiftsci/docopt/LeafPattern.swift /Users/kaiyin/appcodeProjects/swiftsci/docopt/BranchPattern.swift /Users/kaiyin/appcodeProjects/swiftsci/docopt/OptionsShortcut.swift -primary-file /Users/kaiyin/appcodeProjects/swiftsci/swiftsci/sciNotation/sci.swift -target x86_64-apple-macosx10.10 -enable-objc-interop -sdk /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.11.sdk -I /Users/kaiyin/appcodeProjects/swiftsci/Build/Products/Release -F /Users/kaiyin/appcodeProjects/swiftsci/Build/Products/Release -g -module-cache-path /Users/kaiyin/Library/Caches/AppCode33/DerivedData/swiftsci-e581131b/ModuleCache -serialize-debugging-options -Xcc -I/Users/kaiyin/appcodeProjects/swiftsci/Build/Intermediates/swiftsci.build/Release/swiftsci.build/swift-overrides.hmap -Xcc -iquote -Xcc /Users/kaiyin/appcodeProjects/swiftsci/Build/Intermediates/swiftsci.build/Release/swiftsci.build/swiftsci-generated-files.hmap -Xcc -I/Users/kaiyin/appcodeProjects/swiftsci/Build/Intermediates/swiftsci.build/Release/swiftsci.build/swiftsci-own-target-headers.hmap -Xcc -I/Users/kaiyin/appcodeProjects/swiftsci/Build/Intermediates/swiftsci.build/Release/swiftsci.build/swiftsci-all-target-headers.hmap -Xcc -iquote -Xcc /Users/kaiyin/appcodeProjects/swiftsci/Build/Intermediates/swiftsci.build/Release/swiftsci.build/swiftsci-project-headers.hmap -Xcc -I/Users/kaiyin/appcodeProjects/swiftsci/Build/Products/Release/include -Xcc -I/Users/kaiyin/appcodeProjects/swiftsci/Build/Intermediates/swiftsci.build/Release/swiftsci.build/DerivedSources/x86_64 -Xcc -I/Users/kaiyin/appcodeProjects/swiftsci/Build/Intermediates/swiftsci.build/Release/swiftsci.build/DerivedSources -Xcc -working-directory/Users/kaiyin/appcodeProjects/swiftsci -emit-module-doc-path /Users/kaiyin/appcodeProjects/swiftsci/Build/Intermediates/swiftsci.build/Release/swiftsci.build/Objects-normal/x86_64/sci~partial.swiftdoc -O -module-name swiftsci -emit-module-path /Users/kaiyin/appcodeProjects/swiftsci/Build/Intermediates/swiftsci.build/Release/swiftsci.build/Objects-normal/x86_64/sci~partial.swiftmodule -serialize-diagnostics-path /Users/kaiyin/appcodeProjects/swiftsci/Build/Intermediates/swiftsci.build/Release/swiftsci.build/Objects-normal/x86_64/sci.dia -emit-dependencies-path /Users/kaiyin/appcodeProjects/swiftsci/Build/Intermediates/swiftsci.build/Release/swiftsci.build/Objects-normal/x86_64/sci.d -emit-reference-dependencies-path /Users/kaiyin/appcodeProjects/swiftsci/Build/Intermediates/swiftsci.build/Release/swiftsci.build/Objects-normal/x86_64/sci.swiftdeps -o /Users/kaiyin/appcodeProjects/swiftsci/Build/Intermediates/swiftsci.build/Release/swiftsci.build/Objects-normal/x86_64/sci.o
Note:1. While running SILModuleTransform "Closure Specialization".

关于发生了什么的任何想法?

从最后一行来看,似乎我在这里做错

let funcMap = [
        "sci": {
            (s: String) throws -> String in try s.sci()
        },
        "ibook": {
            (s: String) throws -> String in try s.ibook()
        }
]

我不确定为什么这样做不行,但是我尝试了一下:

func fSci(s: String) throws -> String {
    return try s.sci()
}
func fIbook(s: String) throws -> String {
    return try s.ibook()
}

let funcMap = [ "sci": fSci, "ibook": fIbook ]

而且我仍然遇到相同的错误。 奇怪。

由于分段错误,编译器崩溃。 这意味着在这种情况下,编译器已损坏。 您应该通过swift.org错误跟踪程序将错误报告给Apple。 确切地说,这不是Swift问题,而是工具链中的错误。

错误消息表明问题是由于某个地方的关闭而引起的,但他们没有说明是哪一个。 错误消息中实际上没有任何内容指向您正在查看的闭包,而不是其他闭包(如果您查看最后一行,则会看到项目中的每个Swift文件都已列出)。 闭包在语法上是有效的(否则,编译器会更早地抱怨而不是崩溃),但是有关它的事情正在使编译器严重脱离轨道。

我不特别喜欢的一种解决方法是,通过选择单文件优化来禁用整个模块优化:

在此处输入图片说明

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM