Подтвердить что ты не робот

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, но процесс сборки даже не доходит до этой фазы.

Что мне делать, чтобы исправить это?

4b9b3361

Ответ 1

Ну, проблема заключалась в том, что второй ( "сломанный" ) проект по какой-то причине использовал старую версию инструментов Xcode (CreatedOnToolsVersion = 7.1). Первая была построена с помощью CreatedOnToolsVersion = 7.3;.

Если я создам Matrix без поддержки OpenCL и свяжу второй проект с сгенерированной библиотекой .a, все будет хорошо работать, поэтому проблема была явно с OpenCL и разными настройками CreatedOnToolsVersion.

Проблема была решена путем создания нового проекта и копирования файлов там.

Особая благодарность @Yakk за их предложение в комментариях!