Настройте проект iOS для использования собственного

Я пытаюсь настроить проект iOS для компиляции библиотеки С++ под названием Eigen для математики линейной алгебры.

Я начинаю следовать инструкциям Вопроса, упомянутого в:

Как скомпилировать Eigen в iPhone

Но есть еще некоторые вещи, которые я не мог понять.

  1. Пользователь Stafan сказал установить правильные флаги компилятора (-mfpu=neon -mfloat-abi=softfp). Где я могу установить эти флаги? Я уже научился устанавливать флаги для одного файла, как в http://meandmark.com/blog/2011/10/xcode-4-setting-compiler-flags-for-a-single-file/. Но для каких файлов мне нужно установить эти флаги? В частности, здесь не отображаются файлы c++ из библиотеки Eigen.
  2. Пользователь 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++.

  1. Как изменить компилятор для компиляции как объективных файлов c для пользовательского интерфейса, так и файлов c++ из библиотеки

Я надеюсь, что кто-то сможет мне помочь, большое спасибо.


person rcpfuchs    schedule 02.06.2012    source источник


Ответы (1)


Если вы хотите смешать ObjC и C++, обязательно ли вы переименовали свой файл, чтобы он имел суффикс «.mm»? :)

person jd.    schedule 10.09.2012