У меня есть библиотечный проект Android-C, над которым я работаю в Android Studio. Мне нужно добавить внешние библиотеки, такие как C, непосредственно в мой проект (не Via Android Studio Gradle Depertion). < /P>
Я установил openssl 3 через Homebrew и установил openssl_root_dir в моем .zprofile. Однако, когда я пытаюсь создать проект, я сталкиваюсь со следующими ошибками < /p>
C++ build system [configure] failed while executing:
/opt/homebrew/bin/cmake \
-H/Users/mba/AndroidStudioProjects/MyApplication/app/src/main/cpp \
-DCMAKE_SYSTEM_NAME=Android \
-DCMAKE_EXPORT_COMPILE_COMMANDS=ON \
-DCMAKE_SYSTEM_VERSION=24 \
-DANDROID_PLATFORM=android-24 \
-DANDROID_ABI=arm64-v8a \
-DCMAKE_ANDROID_ARCH_ABI=arm64-v8a \
-DANDROID_NDK=/Users/mba/Library/Android/sdk/ndk/25.1.8937393 \
-DCMAKE_ANDROID_NDK=/Users/mba/Library/Android/sdk/ndk/25.1.8937393 \
-DCMAKE_TOOLCHAIN_FILE=/Users/mba/Library/Android/sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake \
-DCMAKE_MAKE_PROGRAM=/Users/mba/Library/Android/sdk/cmake/3.22.1/bin/ninja \
-DCMAKE_LIBRARY_OUTPUT_DIRECTORY=/Users/mba/AndroidStudioProjects/MyApplication/app/build/intermediates/cxx/Debug/444d406q/obj/arm64-v8a \
-DCMAKE_RUNTIME_OUTPUT_DIRECTORY=/Users/mba/AndroidStudioProjects/MyApplication/app/build/intermediates/cxx/Debug/444d406q/obj/arm64-v8a \
-DCMAKE_BUILD_TYPE=Debug \
-DCMAKE_FIND_ROOT_PATH=/Users/mba/AndroidStudioProjects/MyApplication/app/.cxx/Debug/444d406q/prefab/arm64-v8a/prefab \
-B/Users/mba/AndroidStudioProjects/MyApplication/app/.cxx/Debug/444d406q/arm64-v8a \
-GNinja \
-DANDROID_STL=c++_shared
from /Users/mba/AndroidStudioProjects/MyApplication/app
CMake Error at /opt/homebrew/Cellar/cmake/3.29.2/share/cmake/Modules/FindPackageHandleStandardArgs.cmake:230 (message):
Could NOT find OpenSSL, try to set the path to OpenSSL root folder in the
system variable OPENSSL_ROOT_DIR (missing: OPENSSL_CRYPTO_LIBRARY
OPENSSL_INCLUDE_DIR)
< /code>
my cmakelists.txt < /p>
# For more information about using CMake with Android Studio, read the
# documentation: https://d.android.com/studio/projects/a ... -code.html.
# For more examples on how to use CMake, see https://github.com/android/ndk-samples.
# Sets the minimum CMake version required for this project.
cmake_minimum_required(VERSION 3.22.1)
project("nfcNative")
find_package(OpenSSL REQUIRED)
message(STATUS "OPENSSL_LIBRARIES:${OPENSSL_LIBRARIES}")
add_library(${CMAKE_PROJECT_NAME} SHARED
nfcNative.c
commands.c
rsa.c
)
include_directories(src/main/cpp/include/ ${OPENSSL_INCLUDE_DIRS})
target_link_libraries(${CMAKE_PROJECT_NAME}
android
log
OpenSSL::Crypto
OpenSSL::Ssl
)
< /code>
Я установил openssl_root_dir в следующих местах, и компилятор все еще не может найти его < /p>
Кроме того, я могу найти пакет, добавленный через Android Studio зависимость с
find_package(openssl REQUIRED CONFIG)
< /code>
Тем не менее, предоставленный пакет (com.android.ndk.thirdparty: openssl: 1.1.1q-beta-1-только версия 1.1.1, а мой проект требует более поздних версий 3. x
Подробнее здесь: https://stackoverflow.com/questions/784 ... -via-cmake
Как добавить внешнюю библиотеку в проект C/C ++ JNI через CMAKE ⇐ Android
Форум для тех, кто программирует под Android
-
Anonymous
1739544609
Anonymous
У меня есть библиотечный проект Android-C, над которым я работаю в Android Studio. Мне нужно добавить внешние библиотеки, такие как C, непосредственно в мой проект (не Via Android Studio Gradle Depertion). < /P>
Я установил openssl 3 через Homebrew и установил openssl_root_dir в моем .zprofile. Однако, когда я пытаюсь создать проект, я сталкиваюсь со следующими ошибками < /p>
C++ build system [configure] failed while executing:
/opt/homebrew/bin/cmake \
-H/Users/mba/AndroidStudioProjects/MyApplication/app/src/main/cpp \
-DCMAKE_SYSTEM_NAME=Android \
-DCMAKE_EXPORT_COMPILE_COMMANDS=ON \
-DCMAKE_SYSTEM_VERSION=24 \
-DANDROID_PLATFORM=android-24 \
-DANDROID_ABI=arm64-v8a \
-DCMAKE_ANDROID_ARCH_ABI=arm64-v8a \
-DANDROID_NDK=/Users/mba/Library/Android/sdk/ndk/25.1.8937393 \
-DCMAKE_ANDROID_NDK=/Users/mba/Library/Android/sdk/ndk/25.1.8937393 \
-DCMAKE_TOOLCHAIN_FILE=/Users/mba/Library/Android/sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake \
-DCMAKE_MAKE_PROGRAM=/Users/mba/Library/Android/sdk/cmake/3.22.1/bin/ninja \
-DCMAKE_LIBRARY_OUTPUT_DIRECTORY=/Users/mba/AndroidStudioProjects/MyApplication/app/build/intermediates/cxx/Debug/444d406q/obj/arm64-v8a \
-DCMAKE_RUNTIME_OUTPUT_DIRECTORY=/Users/mba/AndroidStudioProjects/MyApplication/app/build/intermediates/cxx/Debug/444d406q/obj/arm64-v8a \
-DCMAKE_BUILD_TYPE=Debug \
-DCMAKE_FIND_ROOT_PATH=/Users/mba/AndroidStudioProjects/MyApplication/app/.cxx/Debug/444d406q/prefab/arm64-v8a/prefab \
-B/Users/mba/AndroidStudioProjects/MyApplication/app/.cxx/Debug/444d406q/arm64-v8a \
-GNinja \
-DANDROID_STL=c++_shared
from /Users/mba/AndroidStudioProjects/MyApplication/app
CMake Error at /opt/homebrew/Cellar/cmake/3.29.2/share/cmake/Modules/FindPackageHandleStandardArgs.cmake:230 (message):
Could NOT find OpenSSL, try to set the path to OpenSSL root folder in the
system variable OPENSSL_ROOT_DIR (missing: OPENSSL_CRYPTO_LIBRARY
OPENSSL_INCLUDE_DIR)
< /code>
my cmakelists.txt < /p>
# For more information about using CMake with Android Studio, read the
# documentation: https://d.android.com/studio/projects/add-native-code.html.
# For more examples on how to use CMake, see https://github.com/android/ndk-samples.
# Sets the minimum CMake version required for this project.
cmake_minimum_required(VERSION 3.22.1)
project("nfcNative")
find_package(OpenSSL REQUIRED)
message(STATUS "OPENSSL_LIBRARIES:${OPENSSL_LIBRARIES}")
add_library(${CMAKE_PROJECT_NAME} SHARED
nfcNative.c
commands.c
rsa.c
)
include_directories(src/main/cpp/include/ ${OPENSSL_INCLUDE_DIRS})
target_link_libraries(${CMAKE_PROJECT_NAME}
android
log
OpenSSL::Crypto
OpenSSL::Ssl
)
< /code>
Я установил openssl_root_dir в следующих местах, и компилятор все еще не может найти его < /p>
Кроме того, я могу найти пакет, добавленный через Android Studio зависимость с
find_package(openssl REQUIRED CONFIG)
< /code>
Тем не менее, предоставленный пакет (com.android.ndk.thirdparty: openssl: 1.1.1q-beta-1-только версия 1.1.1, а мой проект требует более поздних версий 3. x
Подробнее здесь: [url]https://stackoverflow.com/questions/78428650/how-to-add-external-library-to-c-c-jni-project-via-cmake[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия