I've got two projects in Xcode, both of them use OpenCL and cl.hpp
- OpenCL wrappers for C++.
I'm on Mac OS 10.11.4, using clang-703.0.29 version 7.3.0 and the latest (and pretty bizarre) version of Xcode (Version 7.3 (7D175)).
The first project compiles and builds very well. The result of a build is a static library (.a
file). The second one uses this library (I'm just copying & pasting the lib and the headers into this project's directory). I'm also linking OpenCL.framework
with this project.
The problem is, the second project doesn't build. It says:
CGLTypes.h - Missing ',' between enumerators
This error is on line 75:
kCGLPFAStereo OPENGL_ENUM_DEPRECATED(10_0, 10_11) = 6,
It is the only error I'm getting. This happens when cl.hpp
includes OpenCL/opencl.h
which includes OpenCL/cl_gl_ext.h
with #include <OpenGL/CGLTypes.h>
in it.
The Base SDK is set to Latest (OS X 10.11). Exactly the same problem has occurred here, but it has been resolved by an OS update. My Mac OS version is already the latest, so I can't do this.
To sum up, the problem is that two projects use the same version of OpenCL, are built on the same machine with the same settings, the same compiler, etc, but one of them doesn't compile.
Edit: here's a link to the first project: Matrix on GitHub. I'll try to add the second one as soon as possible. In fact, it's an ANN that uses Matrix to do operations with matrices. The only thing I do is I include cl.hpp
and all the .hpp
s from Matrix. I'm also trying to link with the .a
Matrix library, but the build process doesn't even get to this phase.
What should I do to fix that?
Well, the problem was that the second ('broken') project was using the old version of Xcode tools (CreatedOnToolsVersion = 7.1
) for some reason. The first one was built with CreatedOnToolsVersion = 7.3;
.
If I build Matrix without OpenCL support and link the second project with the generated .a
library, everything works fine, so the problem was clearly with OpenCL and different CreatedOnToolsVersion
settings.
The problem was solved by creating a new project and copying the files there.
Special thanks to @Yakk for their suggestion in the comments!
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With