Проблема CMake с ссылкой на внешний проектC++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 Проблема CMake с ссылкой на внешний проект

Сообщение 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


Подробнее здесь: https://stackoverflow.com/questions/793 ... al-project
Ответить

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

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

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

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

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