Я пытаюсь добавить BoringSSL в качестве зависимости моей библиотеки, используя C++ с CMake для Android.
Вот что я делаю:
add_library(mylib STATIC
foo.cpp bar.cpp .....)
ExternalProject_Add(
boringssl
GIT_REPOSITORY "https://github.com/google/boringssl.git"
GIT_TAG "origin/master"
SOURCE_DIR "external/boringssl"
STEP_TARGETS crypto ssl
CMAKE_ARGS "-DOPENSSL_SMALL=TRUE"
)
add_dependencies(mylib boringssl)
target_link_directories(mylib PRIVATE
"${CMAKE_CURRENT_BINARY_DIR}/external/boringssl/install/lib")
target_link_libraries(mylib PRIVATE
crypto ssl)
Компоновщик для «mylib» завершается с ошибкой «ld.lld: ошибка: невозможно найти библиотеку -lcrypto» и «-lssl», и вот что странно:Хотя я использую target_link_directories, распечатанная командная строка компоновщика не включает каталог .../boringssl/install/lib. Этот каталог не существует во время настройки (поскольку ExternalProject_Add запускается во время сборки), но это не должно быть проблемой, верно?
Я, должно быть, делаю что-то не так, что это?
Более широкий вопрос: я хочу включить BoringSSL в качестве зависимости моей библиотеки. Какой лучший способ это сделать, если не ExternalProject_Add?
< час />
Изменить: вот командная строка компоновщика, как вы можете видеть, в ней отсутствует каталог ссылок (моя библиотека называется srtc):
--target=aarch64-none-linux-android29 --sysroot=/mnt/android/sdk/ndk/27.2.12479018/toolchains/llvm/prebuilt/linux-x86_64/sysroot -fPIC -g -DANDROID -fdata-sections -ffunction-sections -funwind-tables -fstack-protector-strong -no-canonical-prefixes -D_FORTIFY_SOURCE=2 -Wformat -Werror=format-security -fno-exceptions -fno-rtti -fno-limit-debug-info -static-libstdc++ -Wl,--build-id=sha1 -Wl,--no-rosegment -Wl,--no-undefined-version -Wl,--fatal-warnings -Wl,--no-undefined -Qunused-arguments -shared -Wl,-soname,libsrtctest.so -o /home/kman/Android/proj-srtc/build/intermediates/cxx/Debug/5963472j/obj/arm64-v8a/libsrtctest.so CMakeFiles/srtctest.dir/jni_class_map.cpp.o CMakeFiles/srtctest.dir/jni_error.cpp.o CMakeFiles/srtctest.dir/jni_util.cpp.o CMakeFiles/srtctest.dir/jni_peer_connection.cpp.o CMakeFiles/srtctest.dir/srtctest_main.cpp.o srtc/libsrtc.a -landroid -llog -lcrypto -lssl -latomic -lm && :
ld.lld: error: unable to find library -lcrypto
ld.lld: error: unable to find library -lssl
Подробнее здесь: https://stackoverflow.com/questions/793 ... al-project
Проблема CMake с ссылкой на внешний проект ⇐ C++
Программы на C++. Форум разработчиков
-
Anonymous
1736894625
Anonymous
Я пытаюсь добавить BoringSSL в качестве зависимости моей библиотеки, используя C++ с CMake для Android.
Вот что я делаю:
add_library(mylib STATIC
foo.cpp bar.cpp .....)
ExternalProject_Add(
boringssl
GIT_REPOSITORY "https://github.com/google/boringssl.git"
GIT_TAG "origin/master"
SOURCE_DIR "external/boringssl"
STEP_TARGETS crypto ssl
CMAKE_ARGS "-DOPENSSL_SMALL=TRUE"
)
add_dependencies(mylib boringssl)
target_link_directories(mylib PRIVATE
"${CMAKE_CURRENT_BINARY_DIR}/external/boringssl/install/lib")
target_link_libraries(mylib PRIVATE
crypto ssl)
Компоновщик для «mylib» завершается с ошибкой «ld.lld: ошибка: невозможно найти библиотеку -lcrypto» и «-lssl», и вот что странно:Хотя я использую target_link_directories, распечатанная командная строка компоновщика не включает каталог .../boringssl/install/lib. Этот каталог не существует во время настройки (поскольку ExternalProject_Add запускается во время сборки), но это не должно быть проблемой, верно?
Я, должно быть, делаю что-то не так, что это?
Более широкий вопрос: я хочу включить BoringSSL в качестве зависимости моей библиотеки. Какой лучший способ это сделать, если не ExternalProject_Add?
< час />
Изменить: вот командная строка компоновщика, как вы можете видеть, в ней отсутствует каталог ссылок (моя библиотека называется srtc):
--target=aarch64-none-linux-android29 --sysroot=/mnt/android/sdk/ndk/27.2.12479018/toolchains/llvm/prebuilt/linux-x86_64/sysroot -fPIC -g -DANDROID -fdata-sections -ffunction-sections -funwind-tables -fstack-protector-strong -no-canonical-prefixes -D_FORTIFY_SOURCE=2 -Wformat -Werror=format-security -fno-exceptions -fno-rtti -fno-limit-debug-info -static-libstdc++ -Wl,--build-id=sha1 -Wl,--no-rosegment -Wl,--no-undefined-version -Wl,--fatal-warnings -Wl,--no-undefined -Qunused-arguments -shared -Wl,-soname,libsrtctest.so -o /home/kman/Android/proj-srtc/build/intermediates/cxx/Debug/5963472j/obj/arm64-v8a/libsrtctest.so CMakeFiles/srtctest.dir/jni_class_map.cpp.o CMakeFiles/srtctest.dir/jni_error.cpp.o CMakeFiles/srtctest.dir/jni_util.cpp.o CMakeFiles/srtctest.dir/jni_peer_connection.cpp.o CMakeFiles/srtctest.dir/srtctest_main.cpp.o srtc/libsrtc.a -landroid -llog -lcrypto -lssl -latomic -lm && :
ld.lld: error: unable to find library -lcrypto
ld.lld: error: unable to find library -lssl
Подробнее здесь: [url]https://stackoverflow.com/questions/79310443/cmake-issue-linking-to-external-project[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия