Я пытаюсь настроить проект iOS для компиляции библиотеки С++ под названием Eigen для математики линейной алгебры.
Я начинаю следовать инструкциям Вопроса, упомянутого в:
Как скомпилировать Eigen в iPhone
Но есть еще некоторые вещи, которые я не мог понять.
- Пользователь Stafan сказал установить правильные флаги компилятора (-mfpu=neon -mfloat-abi=softfp). Где я могу установить эти флаги? Я уже научился устанавливать флаги для одного файла, как в http://meandmark.com/blog/2011/10/xcode-4-setting-compiler-flags-for-a-single-file/. Но для каких файлов мне нужно установить эти флаги? В частности, здесь не отображаются файлы c++ из библиотеки Eigen.
- Пользователь Blukee сказал, что он использовал оптимизированную для armv7 арку в настройках сборки. В настройках сборки я вижу в категории «Архитектуры» зеленое поле с надписью «Стандарт (armv7)», это что правильно?
Я только что создал «singleViewApplication» и хотел использовать файлы С++ в новом классе Objective C под названием MathLibary. Потому что некоторые ребята сказали, что можно перепутать Objective C и C++, если я назову класс MathLibary.hh и MathLibary.mm. Класс выглядит так
#import "MathLibary.hh"
#define EIGEN_DONT_VECTORIZE
#import "SVD.h"
@implementation MathLibary
@end
Когда я пытаюсь запустить приложение, сборка завершается сбоем, и компилятор выдает некоторые ошибки, например: В строке 47 в файле SVD.h, а именно:
typedef typename NumTraits<typename MatrixType::Scalar>::Real RealScalar;
Ошибка Ожидается полное имя после «имя типа»
Для меня это звучит так, будто компилятор пытается скомпилировать SVD.h как объектный файл c, но это C++.
- Как изменить компилятор для компиляции как объективных файлов c для пользовательского интерфейса, так и файлов c++ из библиотеки
Я надеюсь, что кто-то сможет мне помочь, большое спасибо.