Я борюсь с компиляцией библиотеки Eigen для iPhone 4, которая имеет процессор ARM с набором инструкций armv7. Пока все работает нормально, когда я указываю препроцессор, определяю EIGEN_DONT_VECTORIZE. Но из-за некоторых проблем с производительностью я хотел бы использовать оптимизированный код armv7.
Независимо от того, какой компилятор я использую LLVM-GCC 4.2 или LLVM CLang 2.0, я всегда сталкиваюсь с ошибками компиляции. Я выяснил (или лучше так думаю), что LLVM-GCC 4.2 - это единственный способ получить доступ к этим специфическим инструкциям ARM-NEON.
Когда я не устанавливаю EIGEN_DONT_VECTORIZE (и предоставляю -mfloat-abi = softfp -mfpu = neon для gcc), я получаю следующую ошибку компилятора gcc:
src / m3CoreLib / Eigen / src / Core / arch / NEON / PacketMath.h: 89: ошибка: ожидаемый безусловный идентификатор перед '__ extension __'
Я читал о проблемах, связанных со "старой" версией gcc 4.2, и рекомендацией использовать более новую версию gcc. Я не уверен, но я считаю, что это не вариант из-за одобрения магазина приложений. Есть ли что-нибудь еще, что я могу сделать, чтобы скомпилировать его для iPhone? Есть кто-нибудь, кто решил это?
Спасибо, Кей