Articles of swift

在Linux上构buildSwift 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" 看起来像第二个命令没有build立SourceKit。 在build目录下没有二进制文件。 有什么build议做什么? 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 […]

在Ubuntu Linux上,数字types不会自动桥接到纯Swift中的NSNumber?

在MacOS上,如果你这样做: import Foundation let x = Int32(1) as? NSNumber x不是零。 在Ubuntu Linux上,如果你这样做(即使使用Swift 3.1.1),x也是零。 我做错了什么,或者这只是一个事实,缺乏在Ubuntu / Linux与基础与Swift的NSNumber桥接数值types? 另请参见是否有可能将(U)Int8 / 16/32/64types的Swifts自动数值桥接复制到Foundation(NSNumber)? 和https://github.com/SwiftyJSON/SwiftyJSON/issues/745

使用静态Swift核心库编译Swift脚本

我想在没有安装Swift的计算机上执行编译的Swift脚本。 但是,默认情况下,Swift编译器使用dynamic链接库。 是否有可能静态地包含这些库? 使用Docker重现的步骤: user@host:~# docker run -it swiftdocker/swift root@16974ad4edb1:/# swift –version Swift version 3.0-dev (LLVM dffa09ffd8, Clang 9f0d189820, Swift 1c720b8f84) Target: x86_64-unknown-linux-gnu root@16974ad4edb1:/# echo 'print("Hello, world")' > helloworld.swift root@16974ad4edb1:/# swiftc helloworld.swift root@16974ad4edb1:/# ./helloworld Hello, world root@16974ad4edb1:/# exit exit user@host:~# docker cp 16974ad4edb1:/helloworld . user@host:~# file helloworld helloworld: ELF 64-bit LSB executable, x86-64, version 1 […]

在Swift中链接一个C库和它的支持库(linux)

我想在Swift中使用GNU科学库,特别是我想使用gsl_rng.h例程。 所以我基本上遵循https://github.com/apple/swift-package-manager/blob/master/Documentation/SystemModules.md (我使用的是Linux,而不是OS X) 我创build模块为 module CGSL [system] { header "/usr/include/gsl/gsl_rng.h" link "gsl" export * } 然而,我不能build立我的程序,因为我得到了很多类似undefined reference to 'cblas_dasum'的消息。 事实上,正如GSL的文件所述 为了链接库,你需要指定主库和支持CBLAS库,它提供了标准的基本线性代数子程序。 如果你的系统没有提供一个合适的CBLAS实现,则在库libgslcblas.a中提供。 以下示例显示如何将应用程序链接到库, $ gcc -L/usr/local/lib example.o -lgsl -lgslcblas -lm 我该怎么做才能链接-lgsl和-lgslcblas ?

编译C代码并在Linux下将其展示给Swift

有没有办法编译原生的C或C ++代码,并暴露给Linux上的Swift? 我可以看到像libdispatch这样的几个苹果库是用纯C编写的,只要导入它们就可以在Swift中访问它们。 为了设置这个例子,假设我有两个文件Car.c和Car.h定义了名为Car结构。 有没有办法,我可以通过编写import语句来编译它们并在Swift中使用它们? import Car 我已经尝试在.c , .h和Package.swift文件所在的目录中写入module.modulemap文件: module Car { header "Car.h" export * } 并运行swift build 。 这个产量错误: <unknown>:0: error: unexpected 'commands' value (expected map) <unknown>:0: error: unable to load build file 我正在使用Swift版本3.0-dev(2016年3月24日) [更新1] 我已经联系了Max(mxcl) – Swift Package Manager的创build者之一,他告诉我摆脱modulemap并将.c和.h文件直接放在Sources文件夹中。 我做了包编译后,但它不作为模块。 另外,我不能在.h文件中调用任何已定义的函数。

在Linux上使用Swift中的C库

我知道如何在Mac OS上使用Xcode访问Swift中的C库,并且我知道如何在Linux上import Glibc ,但是如何在Linux上使用像Swift一样的OpenGL C库?

Linux中开发iOS应用程序的状态是什么?

我认为这将是适当的社区问这个问题。 当苹果在夏天举行开发者大会时,我意识到他们将会使Swift成为开源软件。 我的印象是,Xcode不会被移植到Linux上,但是我知道某些实体会创build一个开发程序来模仿Xcode。 因此,我想知道在这种情况下的新发展。 有没有人有任何更多的关于这个话题的知识或任何这方面的经验?