Swift Package Manager のPackageがlinkerエラーでビルド失敗する
久しぶりにSwift Package Managerを触ったら、 この構成で、
$ ls Package.swift main.swift $ cat main.swift print("hello") $ cat Package.swift import PackageDescription let package = Package( name: "Queue", dependencies: [] )
こんなエラーが出るようになりました。
$ swift build Undefined symbols for architecture x86_64: "__TFSSCfT21_builtinStringLiteralBp8byteSizeBw7isASCIIBi1__SS", referenced from: _main in main.swift.o "__TFs5printFTGSaP__9separatorSS10terminatorSS_T_", referenced from: _main in main.swift.o "__TIFs5printFTGSaP__9separatorSS10terminatorSS_T_A0_", referenced from: _main in main.swift.o "__TIFs5printFTGSaP__9separatorSS10terminatorSS_T_A1_", referenced from: _main in main.swift.o "__TMSS", referenced from: _main in main.swift.o "__TTSg5P____TFs27_allocateUninitializedArrayurFBwTGSax_Bp_", referenced from: _main in main.swift.o "__TZvOs7Process11_unsafeArgvGSpGSpVs4Int8__", referenced from: _main in main.swift.o "__TZvOs7Process5_argcVs5Int32", referenced from: _main in main.swift.o "_globalinit_33_1BDF70FFC18749BAB495A73B459ED2F0_func5", referenced from: _main in main.swift.o "_globalinit_33_1BDF70FFC18749BAB495A73B459ED2F0_token5", referenced from: _main in main.swift.o ld: symbol(s) not found for architecture x86_64 <unknown>:0: error: link command failed with exit code 1 (use -v to see invocation) <unknown>:0: error: build had 1 command failures error: exit(1): ["/Library/Developer/Toolchains/swift-2.2-SNAPSHOT-2016-01-11-a.xctoolchain/usr/bin/swift-build-tool", "-f", "/Users/toshi0383/dev/tmp/sample-package/.build/debug/Queue.o/llbuild.yaml"]
-v
をつけてビルドしたらこういうコマンドがこけていたようなので、
/Library/Developer/Toolchains/swift-2.2-SNAPSHOT-2016-01-11-a.xctoolchain/usr/bin/swiftc -o /Users/toshi0383/dev/tmp/sample-package/.build/debug/Queue /Users/toshi0383/dev/tmp/sample-package/.build/debug/Queue.o/main.swift.o -target x86_64-apple-macosx10.10 -Xlinker -all_load -g -sdk /Applications/Xcode-beta.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.11.sdk -L/usr/local/lib
いろいろ試しているうちに、最後の -L/usr/local/lib
というのをなくしたらビルドが通りました。
$ /Library/Developer/Toolchains/swift-2.2-SNAPSHOT-2016-01-11-a.xctoolchain/usr/bin/swiftc -o /Users/toshi0383/dev/tmp/sample-package/.build/debug/Queue /Users/toshi0383/dev/tmp/sample-package/.build/debug/Queue.o/main.swift.o -target x86_64-apple-macosx10.10 -Xlinker -all_load -g -sdk /Applications/Xcode-beta.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.11.sdk -L/usr/local/lib $ .build/debug/Queue hello
参考までに記事にしました。
前回触った時からしたことといえば、
- Swiftをビルドした
- Xcode7.3beta をインストールした
くらいなのですが。
原因不明なのですがひとまず。