2016-11-27 87 views
0

Swift新手在这里,使用swift 3在Linux上使用包管理器。导入本地快捷模块

我有一个软件包Regulate,可执行文件和一个兄弟软件包Utils,旨在成为一个库。 Utils/Sources有一个TextReader.swift文件,TextReader类和它的init函数都是公共的。 utils目录是一个git回购,在所描述调节/ Package.swift:

dependencies: [.Package(url: "../Utils", "1.0.0")] 

我试图3点的方式来实例化在调节程序的TextReader对象,并得到3个错误消息:

import Utils 
... 
let reader = TextReader(filename: name) 

误差:使用未解决的识别符 '的TextReader' 的

import Utils 
... 
let reader = Utils.TextReader(filename: name) 

错误:模块 '的Utils' 没有构件名为 '的TextReader'

import class Utils.TextReader 

错误:在模块

没有这样的DECL它看起来像库模块需要一些额外的结构来声明其出口,也许。

我需要在这里做什么?谢谢!

+0

'Utils/Package.swift'是什么样的?你能在''Utils'独立版上运行'swift build',在'Package.swift'中用'Utils'依赖''Regulate',但没有代码导入'TextReader'? –

+0

Utils/Package.swift只有名称:“Utils”这一行,它似乎构建了独立的 - 没有抱怨,并在.build中输出合理的输出。此外,Regulate使用Utils依赖项成功构建,并在代码中导入Utils,但不引用TextReader。 – user1148758

+0

Gotcha。当你构建'Regulate'时,你会看到一行它正在克隆'Utils',并且你看到'Utils'源代码和你的'Regulate/Packages'子目录?另外,如果您没有使用'swift package init'开始使用'Utils',那么可能需要对其进行备份,尝试新的包初始化,并将需要的代码复制回生成的包结构中。 –

回答

0

D'oh!这看起来像名称冲突。

当我使用Utils2而不是Utils时,它工作正常。有了Utils,它克隆并构建了其他模块,但是当我引用它时,显然是转到了某个系统模块。