2016-09-02 2 views
2

У меня есть серьезная проблема с получением XCode 7.3 для компиляции проекта с Mac SDK 10.7 с LLVM (7+) и C++ 11. Источником проблемы является XCode или тот факт, что я запускаю OSX 10.11. У некоторых моих коллег нет той же проблемы, которая компилирует ту же проблему со старыми версиями XCode (6). Вот общая настройка:Использовать OSX SDK 10.7 с XCode 7.3 и CMake

Необходимые библиотеки и заголовки связаны с CMake. Включаемые пути для всех проверяются несколько раз. Созданный проект XCode также выглядит нормально, мы сравнили все важные настройки (диалект C++, std library, target, определяет и т. Д.) С системами, в которых компилируется проект.

Фактическая ошибка возникает при компиляции vecLib source.It кажется набор сообщений случайной ошибки я бы проследить за отсутствия C++ StD заголовков .. Вот несколько примеров:

Explicite specialization of non-template class 'complex'

Redifinition of complex as different kind of symbol

Неужели кто-нибудь сталкивался с подобными проблемами при работе с более новыми XCodes против старых SDK?

EDIT

Вот еще некоторые сведения. После проверки того, что стоит за переопределением, я обнаружил, что по какой-то нечетной причине сложное определение, которое мешало форвардной декларации в файле, было получено из /usr/include/c++/4.2.1. Я думаю, что заголовок устарел или по крайней мере не совместим с C++ 11. Я снова проверил, что использовал компилятор, и lib/language (std = C++ 11 и stdlib = libC++), где правильно установлен. У меня странное ощущение, что источник в user/include не должен быть включен, но я не знаю, как его исправить.

EDIT 2

Я проверил стандарт включают пути с cpp -v и получил следующий список:

/usr/local/include 
/Applications/XCode/.../XCodeDefault.xtoolchain/usr/bin/../lib/clang/7.3.0/include 
/Applications/XCode/.../XCodeDefault.xtoolchain/usr/include 
/usr/include 
/System/Library/Frameworks 
/Library/Frameworks 

Определение комплекса в XCode (третий набора инструментов ввода) является правильным один, определение в/usr/include является тем, которое, кажется, используется при компиляции, что приводит к сообщениям об ошибках. В определении complex используются структуры.

В чем проблема? Является ли проблема, что XCode/Clang или что когда-либо решает пойти с usr/include вместо toolchain? Я проверил параметры проекта и выход компилятора, и явное включение этого пути не было.

ответ

0

Кажется, что AppleClang 7+ и libC++ просто не поддерживают vecLib из OSX SDK 10.7. Мне пришлось вернуться к XCode 6, чтобы заставить его строить.

Смежные вопросы