本帖最后由 cocoaswift 于 2016-6-24 14:06 编辑

听牛哥说最近敏捷大拇指上很多人要学用Swift开发后台,于是打算研究一下使用 Swift 写服务器端代码,折腾了一下在 Mac 上安装 Dev 版本的 Swift,结果还踩了很大的一个坑,安装完成后一直显示 dyld: Library not loaded: @rpath/libswiftCore.dylib,找了很多资料都是在工程中的解决方法,摸索了好一段时间终于解决了问题。

Swift开发环境搭建及问题解决,用Swift编写后台服务器端代码

Swift开发环境搭建及问题解决,用Swift编写后台服务器端代码 - 敏捷大拇指 - Swift开发环境搭建及问题解决,用Swift编写后台服务器端代码





1、安装Swift

  • 从 Swift 的官方网站下载最新的 Swift 的开发版“Latest Development Snapshots”
  • 点击安装,安装完成后 Xcode toolchain 位于 /Library/Developer/Toolchains/
  • 添加 Swift toolchain 到 PATH 上:在~/.bashrc末尾添加:
    [Bash shell] 纯文本查看 复制代码
    export PATH=/Library/Developer/Toolchains/swift-latest.xctoolchain/usr/bin:$PATH



重新打开终端,输入swift --version可以看到如下信息就是安装已经完成。

[Bash shell] 纯文本查看 复制代码
$ swift --version
Apple Swift version 3.0-dev (LLVM 699a786c15, Clang 77080f2c03, Swift d22638766e)
Target: x86_64-apple-macosx10.9





2、解决 dyld: Library not loaded

安装完 Swift 的“Xcode Swift Development Snapshot”后,在终端行执行 swift build --help 出现下列错误:

[Bash shell] 纯文本查看 复制代码
$ swift build --help
dyld: Library not loaded: @rpath/libswiftCore.dylib
  Referenced from: /Library/Developer/Toolchains/swift-DEVELOPMENT-SNAPSHOT-2016-03-16-a.xctoolchain/usr/bin/swift-build
  Reason: image not found
[1]    14293 trace trap  swift build --help


意思大概是指找不到 libswiftCore.dylib。网上很多的解决dyld: Library not loaded的文章都是说在工程中如何解决这个问题,对于在终端运行的问题没有相关的答案。

研究了一番,解决问题的关键在于 libswiftCore 的文件位置查找,在~/.bashrc末尾添加:

[Bash shell] 纯文本查看 复制代码
export DYLD_LIBRARY_PATH=/Library/Developer/Toolchains/swift-latest.xctoolchain/usr/lib/swift/macosx:$DYLD_LIBRARY_PATH


将动态库的查找位置添加到环境变量中即可。

此时重新执行``,会看到如下输出就是工作已经正常:

[Bash shell] 纯文本查看 复制代码
$ swift build --help
OVERVIEW: Build sources into binary products

USAGE: swift build [options]

MODES:
  --configuration <value>        Build with configuration (debug|release) [-c]
  --clean[=<mode>]               Delete artefacts (build|dist) [-k]
  --init <mode>                  Creates a new Swift package (executable|library)
  --fetch                        Fetch package dependencies
  --generate-xcodeproj [<path>]  Generates an Xcode project for this package [-X]

OPTIONS:
  --chdir <value>    Change working directory before any other operation [-C]
  -v[v]              Increase verbosity of informational output
  -Xcc <flag>        Pass flag through to all C compiler instantiations
  -Xlinker <flag>    Pass flag through to all linker instantiations
  -Xswiftc <flag>    Pass flag through to all Swift compiler instantiations





3、测试编译

创建 Hello 工程:

[Bash shell] 纯文本查看 复制代码
$ mkdir Hello
$ cd Hello
$ touch Package.swift


创建 Sources/ 目录并添加 main.swift 文件:

[Bash shell] 纯文本查看 复制代码
$ mkdir Sources
$ cd Sources
$ touch main.swift
$ open main.swift


在 main.swift 文件中输入并保存:

[Swift] 纯文本查看 复制代码
print("Hello, world!")


回到 Hello 目录并执行 swift build 命令:

[Bash shell] 纯文本查看 复制代码
$ cd ..
$ swift build
Compiling Swift Module 'Hello' (1 sources)
Linking .build/debug/Hello


执行 .build/debug/Hello:

[Bash shell] 纯文本查看 复制代码
$ .build/debug/Hello
Hello, world!


看到 “Hello, world!” 就是没问题啦。




有任何问题就上敏捷大拇指Swifthumb.com)来回帖哈~