Xcode 拒绝构建我的一个 OpenCL 项目,但成功构建了另一个项目

Xcode refuses to build one of my OpenCL projects but builds another one successfully

本文关键字:构建 项目 另一个 OpenCL 成功 我的 拒绝 Xcode 一个      更新时间:2023-10-16

我在Xcode中有两个项目,它们都使用OpenCL和cl.hpp - OpenCL包装器进行C++。

我使用的是 Mac OS 10.11.4,使用 clang-703.0.29 版本 7.3.0 和最新(而且非常奇怪(的 Xcode 版本(版本 7.3 (7D175((。

第一个项目编译和构建得很好。构建的结果是一个静态库(.a文件(。第二个使用这个库(我只是将库和标头复制并粘贴到这个项目的目录中(。我也OpenCL.framework与这个项目联系起来。

问题是,第二个项目没有构建。它说:

CGLTypes.h - 枚举器之间缺少",">

此错误位于第 75 行:

kCGLPFAStereo OPENGL_ENUM_DEPRECATED(10_0, 10_11)        =   6,

这是我遇到的唯一错误。当cl.hpp包含包含OpenCL/cl_gl_ext.h #include <OpenGL/CGLTypes.h> OpenCL/opencl.h时,就会发生这种情况。

基本 SDK 设置为"最新"(OS X 10.11(。这里发生了完全相同的问题,但已通过操作系统更新解决了。我的Mac OS版本已经是最新版本,所以我不能这样做。

综上所述,问题在于两个项目使用相同版本的 OpenCL,构建在同一台机器上,具有相同的设置、相同的编译器等,但其中一个无法编译。

编辑:这是第一个项目的链接:GitHub上的Matrix。我会尽快添加第二个。事实上,它是一个使用矩阵对矩阵进行操作的ANN。我唯一要做的就是包括cl.hpp来自 Matrix 的所有.hpp。我也在尝试与.a Matrix库链接,但构建过程甚至没有达到这个阶段。

我应该怎么做才能解决这个问题?

好吧,问题是第二个("损坏"(项目出于某种原因使用了旧版本的 Xcode 工具(CreatedOnToolsVersion = 7.1(。第一个是用CreatedOnToolsVersion = 7.3;建造的.

如果我在没有 OpenCL 支持的情况下构建 Matrix,并将第二个项目与生成的.a库链接,一切正常,因此问题显然出在 OpenCL 和不同的CreatedOnToolsVersion设置上。

通过创建一个新项目并将文件复制到那里解决了这个问题。

特别感谢@Yakk在评论中的建议!