Swift命令行工具需要其他文件
Swift Command Line tool needs other file
所以我有一个接受输入并打印任何内容的脚本。它需要访问第三方编写的文件。我的 Xcode 项目结构只有两个文件,main.swift 和 ThirdParty.swift。如果我只是 运行 它从 Xcode main.swift 高兴地看到 ThirdParty.swift 并且我申请实例化其中定义的对象。当我从命令行 运行 时,它找不到 ThirdParty.swift(这是意料之中的;它怎么知道它在那里?)。
传递给 /usr/bin/swift 的命令行选项的 None 似乎适合指向我想使用的文件并将其指向当前目录也不起作用.这甚至可能还是我应该放弃?
理想的最终结果是能够执行以下操作:
./main.swift --option1 --option2 thing
但一个可接受的结束位置是:
swift -X ThirdParty.swift main.swift --option1 --option2 thing
其中 X 是我需要传入的任何选项。
你不能将两个文件传递到 "immediate" 模式(swift
REPL 模式),但你有几个其他选项:
- 即时将文件合并到一个临时文件中(例如
/bin/cat
)
- 用
swiftc
. 将两个文件编译成普通的二进制文件
我推荐选项 2,尽管这意味着每次更改代码时都需要重新编译,而且它创建的二进制文件在 OS X 和 Linux 之间不可移植。
所以我有一个接受输入并打印任何内容的脚本。它需要访问第三方编写的文件。我的 Xcode 项目结构只有两个文件,main.swift 和 ThirdParty.swift。如果我只是 运行 它从 Xcode main.swift 高兴地看到 ThirdParty.swift 并且我申请实例化其中定义的对象。当我从命令行 运行 时,它找不到 ThirdParty.swift(这是意料之中的;它怎么知道它在那里?)。
传递给 /usr/bin/swift 的命令行选项的None 似乎适合指向我想使用的文件并将其指向当前目录也不起作用.这甚至可能还是我应该放弃?
理想的最终结果是能够执行以下操作:
./main.swift --option1 --option2 thing
但一个可接受的结束位置是:
swift -X ThirdParty.swift main.swift --option1 --option2 thing
其中 X 是我需要传入的任何选项。
你不能将两个文件传递到 "immediate" 模式(swift
REPL 模式),但你有几个其他选项:
- 即时将文件合并到一个临时文件中(例如
/bin/cat
) - 用
swiftc
. 将两个文件编译成普通的二进制文件
我推荐选项 2,尽管这意味着每次更改代码时都需要重新编译,而且它创建的二进制文件在 OS X 和 Linux 之间不可移植。