Xcode отказывается строить один из моих проектов OpenCL, но успешно создает еще один
У меня есть два проекта в Xcode, оба из них используют OpenCL и cl.hpp
- оболочки OpenCL для С++.
Я нахожусь в Mac OS 10.11.4, используя версию clang-703.0.29 версии 7.3.0 и самую последнюю (и довольно странную) версию Xcode (версия 7.3 (7D175)).
Первый проект компилируется и строит очень хорошо. Результатом сборки является статическая библиотека (.a
file). Вторая использует эту библиотеку (я просто копирую и вставляю lib и заголовки в этот каталог проекта). Я также связываю OpenCL.framework
с этим проектом.
Проблема в том, что второй проект не строится. В нем говорится:
CGLTypes.h - Отсутствует ',' между счетчиками
Эта ошибка находится в строке 75:
kCGLPFAStereo OPENGL_ENUM_DEPRECATED(10_0, 10_11) = 6,
Это единственная ошибка, которую я получаю. Это происходит, когда cl.hpp
включает OpenCL/opencl.h
, который включает OpenCL/cl_gl_ext.h
с #include <OpenGL/CGLTypes.h>
в нем.
Базовый SDK установлен на "Последний" (OS X 10.11). Точно такая же проблема возникла здесь, но она была устранена с помощью обновления ОС. Моя версия Mac OS уже самая последняя, поэтому я не могу этого сделать.
Итак, проблема в том, что два проекта используют одну и ту же версию OpenCL, построены на одном компьютере с теми же настройками, один и тот же компилятор и т.д., но один из них не компилируется.
Изменить: здесь ссылка на первый проект: Матрица на GitHub. Я постараюсь добавить второй как можно скорее. Фактически, это ANN, который использует Matrix для выполнения операций с матрицами. Единственное, что я делаю, это включить cl.hpp
и все .hpp
из Matrix. Я также пытаюсь установить связь с библиотекой Matrix .a
, но процесс сборки даже не доходит до этой фазы.
Что мне делать, чтобы исправить это?
Ответы
Ответ 1
Ну, проблема заключалась в том, что второй ( "сломанный" ) проект по какой-то причине использовал старую версию инструментов Xcode (CreatedOnToolsVersion = 7.1
). Первая была построена с помощью CreatedOnToolsVersion = 7.3;
.
Если я создам Matrix без поддержки OpenCL и свяжу второй проект с сгенерированной библиотекой .a
, все будет хорошо работать, поэтому проблема была явно с OpenCL и разными настройками CreatedOnToolsVersion
.
Проблема была решена путем создания нового проекта и копирования файлов там.
Особая благодарность @Yakk за их предложение в комментариях!