我使用命令行工具项目模板创建了一个 OpenGL 应用程序。现在输出项目显然是一个 unix 可执行文件。
我的问题是如何将此可执行文件转换为 bundle .app?我要添加另一个目标吗?
如果您创建了一个命令行工具,那么它就是一个命令行工具。我不知道有什么方法可以轻松地将它捆绑到应用程序中。
如果我是你,并且你将开始编写 Mac OpenGL 应用程序,那么请使用 SFML 进行设置。它极大地简化了窗口的创建,是跨平台的并且有一个很棒的社区。此外,获取 mac .app 包中的资源路径有点棘手,它们提供的模板允许您通过调用访问任何文件:
loadFile(resourcePath() + "filename.txt");
而不必跟踪所有内容。另外,整个资源路径代码都是用目标 C 编写的,这对一些 C++ 程序员来说可能是一件痛苦的事情。
整个框架非常健壮,但保持了简单的风格和自己的命名空间。用你想要的,不要用你不需要的。最新版本(仍然是 beta)2.0,带有 Xcode 模板。只需创建一个模板并在项目的构建设置中滚动到底部。您会看到 SFML_LINK_DYLIBS_SUFFIX,它的值为“-d”。删除“-d”,它应该可以编译。
然后,如果您正在分发,请添加一个副本文件构建阶段并链接您使用的 .dylib(s)。