Кросс-компиляция CMake: если моя библиотека зависит от сторонней организации, что мне делать?Android

Форум для тех, кто программирует под Android
Ответить Пред. темаСлед. тема
Anonymous
 Кросс-компиляция CMake: если моя библиотека зависит от сторонней организации, что мне делать?

Сообщение Anonymous »

Я программирую библиотеку для Windows с помощью Visual Studio, использующей CMake. Это зависит от третьей стороны под названием «aTest». CMakeLists.txt выглядит примерно так:

Код: Выделить всё

add_library(
test
SHARED
"test.h"
"test.cpp"
)
include_directories(${aTestIncludePath})
target_link_libraries(
test
PUBLIC ${aTestPath}
)
Он работает хорошо, генерирует библиотеки под названием a.dll и a.lib в Windows. А затем я помещаю свой код в свою систему Ubuntu.
Конечно, это тоже работает хорошо, создаю библиотеку с именем liba.so в Ubuntu.
Затем я хочу собрать свою библиотеку для платформы Android, я использую команду cmake следующим образом:

Код: Выделить всё

cmake -DCMAKE_TOOLCHAIN_FILE=${ANDROID_NDK}/build/cmake/android.toolchain.cmake -DANDROID_ABI="armeabi-v7a" -DANDROID_NDK=$ANDROID_NDK -DANDROID_PLATFORM=android-22 ..
Тогда я обнаружил проблему:
Мне нужно указать DANDROID_ABI, чтобы сообщить CMake, какую архитектуру я хочу, например x86,armeabi-v7a,arm64- v8a и т. д. Итак, возникает самый запутанный момент:
Моя библиотека зависит от третьей стороны с именем aTest, означает ли это, что если я хочу создать свою библиотеку для архитектуры Android х86, Armeabi-v7a Мне также необходимо скомпилировать сторонний исходный код для архитектуры Android x86, Armeabi-v7a? сгенерировать стороннюю библиотеку разной архитектуры и вызвать ее, снова выполнить приведенную выше команду?
Это вообще не выглядит научным!
Если третья сторона зависит от другой третьей стороне, это будет проблемой!
например, liA.so зависит от liB.so, liB.so зависит от libC.so
Мне нужно скомпилировать архитектуру Android x86, версию libC.so для Armeabi-v7a и затем использует его для скомпилируйте liB.so и, наконец, liC.so.
Есть ли способ скомпилировать один раз и получить библиотеку целевой архитектуры?

Подробнее здесь: https://stackoverflow.com/questions/730 ... shall-i-do
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Android»