神刀安全网

Swift开发环境搭建及问题解决

Swift开发环境搭建及问题解决

Mac 解决问题 March 21 2016

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

安装Swift

  1. 从 Swift 的官方网站下载最新的 Swift 的开发版”Latest Development Snapshots“
  2. 点击安装,安装完成后 Xcode toolchain 位于 /Library/Developer/Toolchains/
  3. 添加 Swift toolchain 到 PATH 上:在 ~/.bashrc 末尾添加: export PATH=/Library/Developer/Toolchains/swift-latest.xctoolchain/usr/bin:$PATH

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

$ swift --version Apple Swift version 3.0-dev (LLVM 699a786c15, Clang 77080f2c03, Swift d22638766e) Target: x86_64-apple-macosx10.9  

解决 dyld: Library not loaded

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

$ 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 末尾添加:

export DYLD_LIBRARY_PATH=/Library/Developer/Toolchains/swift-latest.xctoolchain/usr/lib/swift/macosx:$DYLD_LIBRARY_PATH

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

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

$ 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 

测试编译

创建 Hello 工程:

$ mkdir Hello $ cd Hello $ touch Package.swift 

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

$ mkdir Sources $ cd Sources $ touch main.swift $ open main.swift 

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

print("Hello, world!") 

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

$ cd .. $ swift build Compiling Swift Module 'Hello' (1 sources) Linking .build/debug/Hello 

执行 .build/debug/Hello

$ .build/debug/Hello Hello, world! 

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

转载本站任何文章请注明:转载至神刀安全网,谢谢神刀安全网 » Swift开发环境搭建及问题解决

分享到:更多 ()

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址
分享按钮