[英]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.