在引用 PerfectLib 的更新版本时,我在让我的 PerfectServer 模块(称为 MCPushServer)在 Ubuntu 上编译时遇到问题。至于我之前的问题,我已经更新了 PerfectLib 以利用 WebRequest 的惰性 var 参数 postBodyString 来访问 JSON 正文数据。这在 Mac 上一切正常,但是当我将新文件复制到 Linux VM 并重新编译项目时,MCPushServer 中的 RegistrationHandler 无法编译,因为它无法识别 WebRequest 中的参数:
编译器的输出:
MCPushServer/MCUnregistrationHandler.swift:33:28: error: value of type 'WebRequest' has no member 'postBodyString' let bodyData = request.postBodyString
详细步骤如下:
- 将 PerfectLib 复制到我的远程服务器上
- 删除预先存在的 PerfectLib.so
- 运行“make”:PerfectLib.so 被重新创建,它包含对“postBodyString”的引用(grep 文件并返回匹配项)
- 运行 'sudo make install' 链接到 /user/local/lib/ > 一切正常
- 重新编译 PerfectServer
- cd 进入 Examples/MCPushServer 并运行 make: 出现上述错误
我还尝试注释掉 WebRequest 中的现有方法(例如:lazy var params)并重复该过程:我本来希望我的 Handler 抱怨 WebRequest 中缺少的成员,但它似乎可以应付,好像什么都没发生一样。
在我看来,好像在某个地方有一个过时的 PerfectLib / WebRequest 接口,我的模块在尝试构建时引用了该接口。有人能在这里指出我正确的方向吗?