Мы создали библиотеку Boringssl для Android в среде Mac.
cmake -DANDROID_ABI=armeabi-v7a \
-DANDROID_PLATFORM=android-21 \
-DCMAKE_TOOLCHAIN_FILE=${ANDROID_NDK_ROOT}/build/cmake/android.toolchain.cmake \
-GNinja -B build
ninja -C build
Сборка прошла успешно, были созданы libcrypto.a и libssl.a.
Теперь, чтобы использовать ее в нашем проекте Android, мы скопировали этот файл .a в каталог нашего проекта и создали CMakeLists.txt.
cmake_minimum_required(VERSION 3.18.1)
# OpenSSL 라이브러리 경로 설정
set(OPENSSL_INCLUDE_DIR "${CMAKE_SOURCE_DIR}/opensslSO/include")
set(OPENSSL_LIBRARY_DIR "${CMAKE_SOURCE_DIR}/opensslSO/libs")
include_directories(
${OPENSSL_INCLUDE_DIR}
)
add_library(crypto STATIC IMPORTED)
set_target_properties(crypto PROPERTIES IMPORTED_LOCATION ${OPENSSL_LIBRARY_DIR}/libcrypto.a)
add_library(ssl STATIC IMPORTED)
set_target_properties(ssl PROPERTIES IMPORTED_LOCATION ${OPENSSL_LIBRARY_DIR}/libssl.a)
add_library( native_lib
# Sets the library as a shared library.
SHARED
# Provides a relative path to your source file(s).
my_native_file_path
)
find_library( log-lib
GLESv1
log
)
target_link_libraries( native_lib
crypto
ssl
android
log
EGL
GLESv1_CM
)
opensslSO/include содержит файлы заголовков include/openssl Boringssl, а opensslSO/libs содержит файлы .a.
Я не думаю, что это проблема, но при компиляции я получаю неопределенную ошибку ссылки для файла заголовка в каталоге include.
Похоже, что библиотека не импортируется должным образом. Знаете, как решить эту проблему?
Ссылки на gradle и Boringssl прилагаю
defaultConfig {
minSdkVersion 21
targetSdkVersion 34
}
task wrapper(type: Wrapper){
gradleVersion = '7.2'
}
externalNativeBuild {
// Encapsulates your CMake build configurations.
cmake {
// Provides a relative path to your CMake build script.
path "CMakeLists.txt"
version '3.18.1'
}
}
buildTypes {
release {
// TODO: Add your own signing config for the release build.
// Signing with the debug keys for now, so `flutter run --release` works.
signingConfig signingConfigs.release
minifyEnabled true
useProguard true
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
ndk {
abiFilters 'armeabi-v7a','arm64-v8a','x86_64'
}
}
}
мои переменные среды
export PATH="$PATH:$HOME/flutter/bin"
export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk-17.jdk/Contents/Home
export ANDROID_SDK_ROOT=$HOME/Library/Android/sdk
export ANDROID_NDK_ROOT=$HOME/Library/Android/sdk/ndk/21.1.6352462
export PATH=$ANDROID_NDK_ROOT/toolchains/llvm/prebuilt/darwin-x86_64/bin:$ANDROID_NDK_ROOT/toolchains/arm-linux-androideabi-4.9/prebuilt/darwin-x86_64/bin:$PATH
Подробнее здесь: https://stackoverflow.com/questions/782 ... ence-error
Неопределенная ошибка ссылки библиотеки Borsssl ⇐ Android
Форум для тех, кто программирует под Android
-
Anonymous
1711433442
Anonymous
Мы создали библиотеку Boringssl для Android в среде Mac.
cmake -DANDROID_ABI=armeabi-v7a \
-DANDROID_PLATFORM=android-21 \
-DCMAKE_TOOLCHAIN_FILE=${ANDROID_NDK_ROOT}/build/cmake/android.toolchain.cmake \
-GNinja -B build
ninja -C build
Сборка прошла успешно, были созданы libcrypto.a и libssl.a.
Теперь, чтобы использовать ее в нашем проекте Android, мы скопировали этот файл .a в каталог нашего проекта и создали CMakeLists.txt.
cmake_minimum_required(VERSION 3.18.1)
# OpenSSL 라이브러리 경로 설정
set(OPENSSL_INCLUDE_DIR "${CMAKE_SOURCE_DIR}/opensslSO/include")
set(OPENSSL_LIBRARY_DIR "${CMAKE_SOURCE_DIR}/opensslSO/libs")
include_directories(
${OPENSSL_INCLUDE_DIR}
)
add_library(crypto STATIC IMPORTED)
set_target_properties(crypto PROPERTIES IMPORTED_LOCATION ${OPENSSL_LIBRARY_DIR}/libcrypto.a)
add_library(ssl STATIC IMPORTED)
set_target_properties(ssl PROPERTIES IMPORTED_LOCATION ${OPENSSL_LIBRARY_DIR}/libssl.a)
add_library( native_lib
# Sets the library as a shared library.
SHARED
# Provides a relative path to your source file(s).
my_native_file_path
)
find_library( log-lib
GLESv1
log
)
target_link_libraries( native_lib
crypto
ssl
android
log
EGL
GLESv1_CM
)
opensslSO/include содержит файлы заголовков include/openssl Boringssl, а opensslSO/libs содержит файлы .a.
Я не думаю, что это проблема, но при компиляции я получаю неопределенную ошибку ссылки для файла заголовка в каталоге include.
Похоже, что библиотека не импортируется должным образом. Знаете, как решить эту проблему?
Ссылки на gradle и Boringssl прилагаю
defaultConfig {
minSdkVersion 21
targetSdkVersion 34
}
task wrapper(type: Wrapper){
gradleVersion = '7.2'
}
externalNativeBuild {
// Encapsulates your CMake build configurations.
cmake {
// Provides a relative path to your CMake build script.
path "CMakeLists.txt"
version '3.18.1'
}
}
buildTypes {
release {
// TODO: Add your own signing config for the release build.
// Signing with the debug keys for now, so `flutter run --release` works.
signingConfig signingConfigs.release
minifyEnabled true
useProguard true
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
ndk {
abiFilters 'armeabi-v7a','arm64-v8a','x86_64'
}
}
}
мои переменные среды
export PATH="$PATH:$HOME/flutter/bin"
export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk-17.jdk/Contents/Home
export ANDROID_SDK_ROOT=$HOME/Library/Android/sdk
export ANDROID_NDK_ROOT=$HOME/Library/Android/sdk/ndk/21.1.6352462
export PATH=$ANDROID_NDK_ROOT/toolchains/llvm/prebuilt/darwin-x86_64/bin:$ANDROID_NDK_ROOT/toolchains/arm-linux-androideabi-4.9/prebuilt/darwin-x86_64/bin:$PATH
Подробнее здесь: [url]https://stackoverflow.com/questions/78223270/boringssl-library-undefined-reference-error[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия