Вот что я делаю:
Код: Выделить всё
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)
Я, должно быть, делаю что-то не так, что это?
Более широкий вопрос: я хочу включить 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 -нет канонических префиксов -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-unопределенная-версия -Wl,--fatal-warnings -Wl,--no-undefined -Quunused-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 -лог -lcrypto -lssl -latomic -lm && :
ld.lld: ошибка: невозможно найти библиотеку -lcrypto
ld.lld: ошибка: невозможно найти библиотеку -lssl
Подробнее здесь: https://stackoverflow.com/questions/793 ... al-project
Мобильная версия