2012-05-14 3 views
3

У меня проблема: Библиотека libopencv_java.so, составленная из OpenCV 2.3.1 с NDK6, отлично работает на Samsung Galaxy S, но не на Galaxy Tab. Настройка Сложения:OpenCV 2.3.1 скомпилирован с ошибками NDK6 на вкладке Galaxy 10.1

-MacOS X

-NDK6

-Build неон

библиотека, кажется, не в состоянии на двойной> целочисленных преобразований.

ответ

1

Кажется, что Galaxy Tab использует процессор Nvidia Tegra 2. Недавно в NDK произошла ошибка, которая сгенерировала неверный код для процессоров Tegra 2, связанных с инструкциями с плавающей запятой. Вот цитата из NDK R7c changelog:

Этот выпуск NDK включает в себя важное исправление для устройств Tegra2 основе, а также несколько дополнительных исправлений и улучшений:

Важные исправления: Fixed GNU STL двухъядерных файлов armeabi-v7a, чтобы не сбой на устройствах, отличных от NEON. Файлы, поставляемые с NDK r7b, не были настроены должным образом, что привело к сбоям на устройствах на базе Tegra2 и другим при попытке использовать определенные функции с плавающей запятой (например, cosf, sinf, expf).

Так что попробуйте перекомпилировать OpenCV с по крайней мере NDK r7c.

+0

Пробовал, сборка 2.3.1 терпит неудачу, но 2.4 строит. – Alex

+0

Вы говорите, что 2.3.1 с NDK r7c (или NDK r8) также не работает на Galaxy Tab? Затем попробуйте изолировать программу в небольшом исходном примере и сообщить об ошибке в Android NDK. –

+0

Я согласен с ответом, поскольку он кажется правильным. Спасибо – Alex

Смежные вопросы