本文介绍了在Linux上构建Swift SourceKit的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

https://github.com/apple/swift/pull/3594#issuecomment-234169759

$ utils/build-script --libdispatch 
$ utils/build-script --libdispatch --extra-cmake-options="-DSWIFT_BUILD_SOURCEKIT:BOOL=TRUE"

看起来第二条命令不执行任何操作来构建SourceKit.在构建目录中未创建二进制文件.有什么建议该怎么做吗?

Looks like the second command does nothing to build the SourceKit. No binary created in build directory. Any advice what to do?

jara@jara-pc:~/swift-source/swift$ utils/build-script --libdispatch --extra-cmake-options="-DSWIFT_BUILD_SOURCEKIT:BOOL=TRUE"
+ mkdir -p /home/jara/swift-source/build/Ninja-DebugAssert
+ env HOST_VARIABLE_linux_x86_64__SWIFT_BENCHMARK_TARGETS= HOST_VARIABLE_linux_x86_64__SWIFT_RUN_BENCHMARK_TARGETS= HOST_VARIABLE_linux_x86_64__SWIFT_SDKS=LINUX HOST_VARIABLE_linux_x86_64__SWIFT_STDLIB_TARGETS=swift-test-stdlib-linux-x86_64 HOST_VARIABLE_linux_x86_64__SWIFT_TEST_TARGETS= /home/jara/swift-source/swift/utils/build-script-impl --workspace /home/jara/swift-source --build-dir /home/jara/swift-source/build/Ninja-DebugAssert --install-prefix /usr --host-target linux-x86_64 --stdlib-deployment-targets linux-x86_64 --host-cc /usr/bin/clang --host-cxx /usr/bin/clang++ --darwin-xcrun-toolchain default --darwin-deployment-version-osx=10.9 --darwin-deployment-version-ios=7.0 --darwin-deployment-version-tvos=9.0 --darwin-deployment-version-watchos=2.0 --cmake /usr/local/bin/cmake --cmark-build-type Debug --llvm-build-type Debug --swift-build-type Debug --swift-stdlib-build-type Debug --lldb-build-type Debug --foundation-build-type Debug --libdispatch-build-type Debug --xctest-build-type Debug --swift-enable-assertions true --swift-stdlib-enable-assertions true --swift-analyze-code-coverage false --cmake-generator Ninja --build-jobs 4 '--common-cmake-options=-G Ninja -DCMAKE_C_COMPILER:PATH=/usr/bin/clang -DCMAKE_CXX_COMPILER:PATH=/usr/bin/clang++' --build-args=-j4 --cmark-cmake-options= '--llvm-cmake-options=-DLLVM_ENABLE_ASSERTIONS=TRUE -DLLVM_TARGETS_TO_BUILD=X86;ARM;AArch64;PowerPC;SystemZ' --swift-cmake-options= --libdispatch-cmake-options= --build-stdlib-deployment-targets all --ninja-bin=/usr/bin/ninja --skip-build-foundation --skip-build-xctest --skip-build-lldb --skip-build-llbuild --skip-build-swiftpm --skip-build-playgroundlogger --skip-build-playgroundsupport --build-swift-dynamic-stdlib --build-swift-dynamic-sdk-overlay --skip-build-ios-device --skip-build-ios-simulator --skip-build-tvos-device --skip-build-tvos-simulator --skip-build-watchos-device --skip-build-watchos-simulator --skip-build-android --skip-test-swift --skip-test-cmark --skip-test-lldb --skip-test-llbuild --skip-test-swiftpm --skip-test-xctest --skip-test-foundation --skip-test-libdispatch --skip-test-playgroundlogger --skip-test-playgroundsupport --skip-test-linux --skip-test-freebsd --skip-test-cygwin --skip-test-osx --skip-test-ios-host --skip-test-ios-simulator --skip-test-tvos-host --skip-test-tvos-simulator --skip-test-watchos-host --skip-test-watchos-simulator --skip-test-android-host --skip-test-benchmarks --skip-test-optimized --android-deploy-device-path /data/local/tmp --extra-cmake-options=-DSWIFT_BUILD_SOURCEKIT:BOOL=TRUE --llvm-lit-args=-sv
Building the standard library for: swift-test-stdlib-linux-x86_64
cmark: using gold linker
+ rm -rf /home/jara/swift-source/build/Ninja-DebugAssert/cmark-linux-x86_64/module-cache
+ mkdir -p /home/jara/swift-source/build/Ninja-DebugAssert/cmark-linux-x86_64/module-cache
+ /usr/local/bin/cmake --build /home/jara/swift-source/build/Ninja-DebugAssert/cmark-linux-x86_64 -- -j4 all
ninja: no work to do.
llvm: using gold linker
+ rm -rf /home/jara/swift-source/build/Ninja-DebugAssert/llvm-linux-x86_64/module-cache
+ mkdir -p /home/jara/swift-source/build/Ninja-DebugAssert/llvm-linux-x86_64/module-cache
symlinking the system headers (/usr/include/c++) into the local clang build directory (/home/jara/swift-source/build/Ninja-DebugAssert/llvm-linux-x86_64/include).
+ ln -s -f /usr/include/c++ /home/jara/swift-source/build/Ninja-DebugAssert/llvm-linux-x86_64/include
+ /usr/local/bin/cmake --build /home/jara/swift-source/build/Ninja-DebugAssert/llvm-linux-x86_64 -- -j4 all
ninja: no work to do.
swift: using gold linker
+ rm -rf /home/jara/swift-source/build/Ninja-DebugAssert/swift-linux-x86_64/module-cache
+ mkdir -p /home/jara/swift-source/build/Ninja-DebugAssert/swift-linux-x86_64/module-cache
+ /usr/local/bin/cmake --build /home/jara/swift-source/build/Ninja-DebugAssert/swift-linux-x86_64 -- -j4 all swift-test-stdlib-linux-x86_64
ninja: no work to do.
libdispatch: using gold linker
Skipping reconfiguration of libdispatch
+ pushd /home/jara/swift-source/build/Ninja-DebugAssert/libdispatch-linux-x86_64
~/swift-source/build/Ninja-DebugAssert/libdispatch-linux-x86_64 ~/swift-source/swift
+ make
Making all in dispatch
make[1]: Entering directory `/home/jara/swift-source/build/Ninja-DebugAssert/libdispatch-linux-x86_64/dispatch'
make[1]: Nothing to be done for `all'.
make[1]: Leaving directory `/home/jara/swift-source/build/Ninja-DebugAssert/libdispatch-linux-x86_64/dispatch'
Making all in libpwq
make[1]: Entering directory `/home/jara/swift-source/build/Ninja-DebugAssert/libdispatch-linux-x86_64/libpwq'
make  all-am
make[2]: Entering directory `/home/jara/swift-source/build/Ninja-DebugAssert/libdispatch-linux-x86_64/libpwq'
make[2]: Leaving directory `/home/jara/swift-source/build/Ninja-DebugAssert/libdispatch-linux-x86_64/libpwq'
make[1]: Leaving directory `/home/jara/swift-source/build/Ninja-DebugAssert/libdispatch-linux-x86_64/libpwq'
Making all in libkqueue
make[1]: Entering directory `/home/jara/swift-source/build/Ninja-DebugAssert/libdispatch-linux-x86_64/libkqueue'
make  all-am
make[2]: Entering directory `/home/jara/swift-source/build/Ninja-DebugAssert/libdispatch-linux-x86_64/libkqueue'
make[2]: Leaving directory `/home/jara/swift-source/build/Ninja-DebugAssert/libdispatch-linux-x86_64/libkqueue'
make[1]: Leaving directory `/home/jara/swift-source/build/Ninja-DebugAssert/libdispatch-linux-x86_64/libkqueue'
Making all in man
make[1]: Entering directory `/home/jara/swift-source/build/Ninja-DebugAssert/libdispatch-linux-x86_64/man'
make[1]: Nothing to be done for `all'.
make[1]: Leaving directory `/home/jara/swift-source/build/Ninja-DebugAssert/libdispatch-linux-x86_64/man'
Making all in os
make[1]: Entering directory `/home/jara/swift-source/build/Ninja-DebugAssert/libdispatch-linux-x86_64/os'
make[1]: Nothing to be done for `all'.
make[1]: Leaving directory `/home/jara/swift-source/build/Ninja-DebugAssert/libdispatch-linux-x86_64/os'
Making all in private
make[1]: Entering directory `/home/jara/swift-source/build/Ninja-DebugAssert/libdispatch-linux-x86_64/private'
make[1]: Nothing to be done for `all'.
make[1]: Leaving directory `/home/jara/swift-source/build/Ninja-DebugAssert/libdispatch-linux-x86_64/private'
Making all in src
make[1]: Entering directory `/home/jara/swift-source/build/Ninja-DebugAssert/libdispatch-linux-x86_64/src'
make  all-am
make[2]: Entering directory `/home/jara/swift-source/build/Ninja-DebugAssert/libdispatch-linux-x86_64/src'
make[2]: Nothing to be done for `all-am'.
make[2]: Leaving directory `/home/jara/swift-source/build/Ninja-DebugAssert/libdispatch-linux-x86_64/src'
make[1]: Leaving directory `/home/jara/swift-source/build/Ninja-DebugAssert/libdispatch-linux-x86_64/src'
Making all in tests
make[1]: Entering directory `/home/jara/swift-source/build/Ninja-DebugAssert/libdispatch-linux-x86_64/tests'
make[1]: Nothing to be done for `all'.
make[1]: Leaving directory `/home/jara/swift-source/build/Ninja-DebugAssert/libdispatch-linux-x86_64/tests'
make[1]: Entering directory `/home/jara/swift-source/build/Ninja-DebugAssert/libdispatch-linux-x86_64'
make[1]: Nothing to be done for `all-am'.
make[1]: Leaving directory `/home/jara/swift-source/build/Ninja-DebugAssert/libdispatch-linux-x86_64'
+ popd
~/swift-source/swift
+ pushd /home/jara/swift-source/build/Ninja-DebugAssert/libdispatch-linux-x86_64/tests
~/swift-source/build/Ninja-DebugAssert/libdispatch-linux-x86_64/tests ~/swift-source/swift
+ make build-tests
make: Nothing to be done for `build-tests'.
+ popd
~/swift-source/swift

推荐答案

自swift-3.0-PREVIEW-3起,我就一直在Linux上构建SourceKit的环境. https://github.com/norio-nomura/docker-sourcekit-builder/

I have kept environment for building SourceKit on Linux since swift-3.0-PREVIEW-3.https://github.com/norio-nomura/docker-sourcekit-builder/

这篇关于在Linux上构建Swift SourceKit的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

09-23 10:44