У меня есть серьезная проблема с получением 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? Я проверил параметры проекта и выход компилятора, и явное включение этого пути не было.