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

For*_*Bru 27 c++ macos xcode opencl

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

我在Mac OS 10.11.4,使用铛 - 703.0.29版本7.3.0和Xcode中(7.3版(7D175))的最新(和漂亮的奇异的)版本.

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

问题是,第二个项目没有建立.它说:

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

第75行出现此错误:

kCGLPFAStereo OPENGL_ENUM_DEPRECATED(10_0, 10_11)        =   6,
Run Code Online (Sandbox Code Playgroud)

这是我遇到的唯一错误.发生这种情况时,cl.hpp包括OpenCL/opencl.h其中包括OpenCL/cl_gl_ext.h#include <OpenGL/CGLTypes.h>它.

Base SDK设置为Latest(OS X 10.11).这里出现了完全相同的问题,但它已通过操作系统更新解决.我的Mac OS版本已经是最新的,所以我不能这样做.

总而言之,问题是两个项目使用相同版本的OpenCL,构建在具有相同设置的同一台机器上,相同的编译器等,但其中一个不能编译.

编辑:这是第一个项目的链接:GitHub上的Matrix.我会尽快添加第二个.实际上,它是一个使用Matrix进行矩阵运算的ANN .我唯一要做的是包括我cl.hpp和所有的.hpp从s 矩阵.我也试图链接.a Matrix库,但构建过程甚至没有进入这个阶段.

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

For*_*Bru 5

好吧,问题是第二个('破碎')项目CreatedOnToolsVersion = 7.1出于某种原因使用旧版本的Xcode工具().第一个是用CreatedOnToolsVersion = 7.3;.

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

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

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