Проблема может заключаться в использовании компилятора LLVM 3.1 от Apple, и я уверен, что это можно устранить, отключив NEON. Однако мы хотели бы использовать NEON.XCode IOS Apple LLVM 3.1 - Eigen NEON breaks
Я также вполне уверен, что это ошибка с моей настройкой в XCode, но это может быть с Apple. На самом деле я просто протягиваю несколько советов в правильном направлении.
/Eigen/src/Core/util/Macros.h
188:Unknown type name 'namespace'
188: Expected ';' after top level declarator
/Eigen/Core
144:'cerrno' file not found
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/clang/3.1/include/arm_neon.h
55: Unknown type name 'float32_t'
Эта недостающая ошибка float32_t возникает каждый экземпляр в этом файле. Даже несмотря на то, что строка 33 четко обозначена typedef.
UPDATE: Если я заставляю #define EIGEN_NO_DEBUG
то единственная ошибка остальной недостающего cerrno. На самом деле кажется, что все библиотеки cXXX отсутствуют (например, cstdlib). Но они работают, если я включаю их за пределы Эйгена.
Первая ошибка заставляет меня думать, что вы компилируете с clang вместо clang ++ или, по крайней мере, используя компилятор c вместо C++. –
Файл, в который я включаю некоторые файлы C++ (включая Eigen), является файлом .mm, поэтому я предполагаю, что он будет использовать clang ++. Я не понял, как сказать XCode, чтобы показать мне свой журнал компилятора, чтобы я действительно видел, что он делает. – Halsafar
Благодаря шарту. Проблема была обнаружена. Под «SupportingFiles» была main.m. Это означает, что clang использовался для компиляции main.m, который включал файлы и в конечном итоге приводил к тому, что Eigen был скомпилирован с неправильным компилятором. Я удивлен, что не было еще миллиона ошибок. Переименовать main.m на main.mm, проблемы решены. Я еще не могу ответить на свой вопрос ... +1 комментарий короткий. – Halsafar