1

我正在关注在 Swift 中使用 OpenGL 的教程。它显然依赖于 GLFW 的一些 GitHub Repo,并使用 Package.swift 文件将其构建到您的可执行文件中。可悲的是,在运行指示的构建命令时,swift build -Xcc -I/usr/local/include -Xlinker -L/usr/local/lib我收到以下错误:

错误:不再支持空清单文件。用于swift package init自动生成。

当我运行建议的 init 命令时,我得到:

错误:此目录中已存在清单文件

我应该怎么办?

4

1 回答 1

0

该教程是为 Swift 版本 2 编写的,并且已经过时了一段时间。您需要该存储库中的库的唯一原因是因为它定义了一些使您的程序正确链接所必需的 OpenGL 函数加载器。我目前使用的是我破解的那个库的一个补丁版本,SGLOpenGL让它在 Swift 3 下编译。我相信这是目前将 OpenGL 与 Swift 一起使用的唯一方法。您将不得不更正 SwiftUnsafePointer并重写函数参数列表以使用(或删除)命名参数等,因为 Swift 3 是一个破坏源代码的版本。编译器通常会告诉你你必须做什么,这只是很多乏味的工作。

请注意,您不需要 Turnbull 的任何其他库即可将 OpenGL 与 Swift 结合使用。您可以轻松(“轻松”)为四元数、向量、矩阵、相机截头体等编写自己的Math函数实现。Google 是您的朋友,因为这些例程中的大多数都是计算机图形学中经过充分研究的问题,并且有Web 上的大量伪代码和 C++ 实现可帮助您入门。

替换 PNG 库并非易事,但幸运的Image是,已经存在一个原生 Swift PNG 解码器†</sup>,旨在与图形框架一起使用。MaxPNG

祝你好运!!!

†</sup> (披露,我是的作者MaxPNG;我写它是因为几个月前我和你处于完全相同的位置。

于 2017-04-30T00:53:19.730 回答