используя eigen с Android ndk - PullRequest
6 голосов
/ 12 декабря 2011

Кто-нибудь успешно импортировал собственную библиотеку, используя ndk?Я думал о том, чтобы использовать его для выполнения всех операций по математике для приложения, над которым я работаю.Я обнаружил, что некоторые люди упоминали об этом на некоторых форумах, но кроме того факта, что я не знаю, успешно ли они заработали, большинство форумов, которые я прочитал, начинаются с упоминания некоторой ошибки, связанной с неоновым кодом ..... с которой я не сталкивалсяраньше ни

Что было бы действительно полезно, если бы кто-нибудь указал мне на учебник о том, как скомпилировать существующую библиотеку, такую ​​как eigen, используя ndk.Таким образом, я могу сделать это позже для себя.Я только что нашел это: http://code.google.com/p/android-cmake/ и хотел бы попытаться реализовать это сам, но не уверен, с чего начать.Очевидно, у меня впереди немного интенсивного чтения, так что я начну это, но если бы кто-нибудь мог подключиться и помочь с компиляцией нативных библиотек для использования с ndk, я был бы очень признателен.

Ответы [ 2 ]

3 голосов
/ 15 декабря 2011

Я никогда раньше не использовал Android NDK, я использую Eigen для численных расчетов в физике.

Eigen - только заголовок, так что вы можете поместить его в любое удобное для вас место. Вам просто нужно указать путь к этой папке (возможно, внутри вашего Android.mk). Если вам не нужны неподдерживаемые библиотеки в Eigen, то вам нужна только папка «Eigen». Остальное только для документации и тестов. После короткого взгляда на документацию я думаю, что вы можете достичь этого с

LOCAL_C_INCLUDES := path/to/eigen

внутри вашего Android.mk

Быстрое и грязное решение - выбросить Эйгена в папку 'jni'. Но это работает, только если все источники, использующие Eigen, также присутствуют. Таким образом, вам не нужно редактировать свой Android.mk.

1 голос
/ 28 декабря 2012

Я предпочитаю иметь заголовки Eigen вне рабочей области Eclipse , точно так же, как stl и т. Д. Чтобы сделать это, разархивируйте загрузочный файл Eigen и скопируйте папку "Eigen" в каталог по вашему выбору:

/ Пользователи / Foo / библиотеки / собственный / Эйген

Затем в файле Android.mk вашего проекта сообщите ndk-build, где находятся файлы Eigen:

LOCAL_C_INCLUDES + = / Пользователи / foo / library / eigen

Не указывайте фактическую папку «Eigen» здесь, ссылайтесь на папку над ней, иначе включения не будут работать. Наконец, расскажите индексатору Eclipse о включениях:

Щелкните правой кнопкой мыши свой проект -> Свойства -> Общие сведения о C / C ++ -> Пути и символы -> Включает -> GNU C ++ -> Добавить ... -> Файловая система ... -> снова укажите его / Users / Foo / библиотеки / Эйгена

Готово.

...