Size: a a a

Android NDK (C++) — русскоговорящее сообщество

2018 October 25

A

Alexey in Android NDK (C++) — русскоговорящее сообщество
В интернете или очень уж простые примеры с одним файлом C (hello-libs), или просто использование готовых скомпилированных в *.so или *.a библиотек (просто кладутся в библиотеку jni-libs). А вот для своего случая я никак не могу найти guide
источник

ЕН

Евгений Нефедов in Android NDK (C++) — русскоговорящее сообщество
эмм
источник

ЕН

Евгений Нефедов in Android NDK (C++) — русскоговорящее сообщество
ну во первых у тебя никак твои dependencies/openssl/libs не привязанны к проекту
источник

ЕН

Евгений Нефедов in Android NDK (C++) — русскоговорящее сообщество
источник

ЕН

Евгений Нефедов in Android NDK (C++) — русскоговорящее сообщество
вот посмотри как тут присоеденяют shared object
источник

ЕН

Евгений Нефедов in Android NDK (C++) — русскоговорящее сообщество
если у тебя какая-та библиотека которая имеет зависимость от openSSL то тебе необходимо 1) добавить ее add_library 2) указать исходники set_target_properties 3) прилинковать зависимости target_link_libraries (опиционально еще инклюды ей дать)
источник

A

Alexey in Android NDK (C++) — русскоговорящее сообщество
Евгений Нефедов
ну во первых у тебя никак твои dependencies/openssl/libs не привязанны к проекту
Я добавлял в gen-libs/src/main/main/cpp/acrosync/CMakeLists.txt

set(dependencies_DIR ${CMAKE_CURRENT_SOURCE_DIR}/../../../../../dependencies)

include_directories(${CMAKE_CURRENT_SOURCE_DIR} openssl-includes "${dependencies_DIR}/openssl/libs/${ANDROID_ABI}/include")
link_directories("${dependencies_DIR}/openssl/libs/${ANDROID_ABI}")
источник

A

Alexey in Android NDK (C++) — русскоговорящее сообщество
Евгений Нефедов
если у тебя какая-та библиотека которая имеет зависимость от openSSL то тебе необходимо 1) добавить ее add_library 2) указать исходники set_target_properties 3) прилинковать зависимости target_link_libraries (опиционально еще инклюды ей дать)
Вот с этим у меня основная проблема и возникла. Есть возможность исправить проект и показать "как надо" сделать?
источник

ЕН

Евгений Нефедов in Android NDK (C++) — русскоговорящее сообщество
я в отпуске)) кинь лог что там тебе выдает полностью
источник

A

Alexey in Android NDK (C++) — русскоговорящее сообщество
Я сейчас не за компом (
источник

A

Alexey in Android NDK (C++) — русскоговорящее сообщество
завтра скину в личку, если не против
источник
2018 October 26

A

Alexey in Android NDK (C++) — русскоговорящее сообщество
Ошибки при сборке проекта:
источник

A

Alexey in Android NDK (C++) — русскоговорящее сообщество
Build command failed.
Error while executing process C:\Users\user\AppData\Local\Android\Sdk\cmake\3.6.4111459\bin\cmake.exe with arguments {--build C:\projects\hello-libs\gen-libs\.externalNativeBuild\cmake\debug\x86_64 --target acrosync}
[1/2] Building CXX object /tmp/acrosync/CMakeFiles/acrosync.dir/rsync/rsync_client.cpp.o
[2/2] Linking CXX shared library C:\projects\hello-libs\distribution\acrosync\lib\x86_64\libacrosync.so
FAILED: cmd.exe /C "cd . && C:\Users\user\AppData\Local\Android\Sdk\ndk-bundle\toolchains\llvm\prebuilt\windows-x86_64\bin\clang++.exe  --target=x86_64-none-linux-android21 --gcc-toolchain=C:/Users/user/AppData/Local/Android/Sdk/ndk-bundle/toolchains/x86_64-4.9/prebuilt/windows-x86_64 --sysroot=C:/Users/user/AppData/Local/Android/Sdk/ndk-bundle/sysroot -fPIC -isystem C:/Users/user/AppData/Local/Android/Sdk/ndk-bundle/sysroot/usr/include/x86_64-linux-android -g -DANDROID -ffunction-sections -funwind-tables -fstack-protector-strong -no-canonical-prefixes -Wa,--noexecstack -Wformat -Werror=format-security -std=c++11  -O0 -fno-limit-debug-info  -Wl,--exclude-libs,libgcc.a -Wl,--exclude-libs,libatomic.a -nostdlib++ --sysroot C:/Users/user/AppData/Local/Android/Sdk/ndk-bundle/platforms/android-21/arch-x86_64 -Wl,--build-id -Wl,--warn-shared-textrel -Wl,--fatal-warnings -LC:/Users/user/AppData/Local/Android/Sdk/ndk-bundle/sources/cxx-stl/llvm-libc++/libs/x86_64 -Wl,--no-undefined -Wl,-z,noexecstack -Qunused-arguments -Wl,-z,relro -Wl,-z,now -shared -Wl,-soname,libacrosync.so -o C:\projects\hello-libs\distribution\acrosync\lib\x86_64\libacrosync.so /tmp/acrosync/CMakeFiles/acrosync.dir/rsync/rsync_client.cpp.o  -latomic -lm "C:/Users/user/AppData/Local/Android/Sdk/ndk-bundle/sources/cxx-stl/llvm-libc++/libs/x86_64/libc++_static.a" "C:/Users/user/AppData/Local/Android/Sdk/ndk-bundle/sources/cxx-stl/llvm-libc++/libs/x86_64/libc++abi.a" && cmd.exe /C "cd /D \tmp\acrosync && C:\Users\user\AppData\Local\Android\Sdk\cmake\3.6.4111459\bin\cmake.exe -E copy C:/Snake/work/hello-libs/gen-libs/src/main/cpp/acrosync/rsync/rsync_client.h C:/Snake/work/hello-libs/gen-libs/src/main/cpp/acrosync/../../../../../distribution/acrosync/include/rsync_client.h""
C:\projects\hello-libs\gen-libs\src\main\cpp\acrosync\rsync/rsync_client.cpp:0: error: undefined reference to 'typeinfo for rsync::IO'
C:\projects\hello-libs\gen-libs\src\main\cpp\acrosync\rsync/rsync_client.cpp:0: error: undefined reference to 'typeinfo for rsync::SSHIO'
C:\projects\hello-libs\gen-libs\src\main\cpp\acrosync\rsync/rsync_client.cpp:210: error: undefined reference to 'rsync::Stream::Stream(rsync::IO*, int*)'
C:\projects\hello-libs\gen-libs\src\main\cpp\acrosync\rsync/rsync_client.cpp:243: error: undefined reference to 'rsync::Stream::~Stream()'
C:\projects\hello-libs\gen-libs\src\main\cpp\acrosync\rsync/rsync_client.cpp:250: error: undefined reference to 'rsync::Stream::setUploadLimit(int)'

Далее идут однотипные ошибки

C:\projects\hello-libs\gen-libs\src\main\cpp\acrosync\rsync/rsync_client.cpp:1569: error: undefined reference to 'rsync::Stream::reset()'
C:\projects\hello-libs\gen-libs\src\main\cpp\acrosync\rsync/rsync_client.cpp:1575: error: undefined reference to 'rsync::Stream::login(char const*, int*, std::__ndk1::vector<std::__ndk1::basic_string<char, std::__ndk1::char_traits<char>, std::__ndk1::allocator<char> >, std::__ndk1::allocator<std::__ndk1::basic_string<char, std::__ndk1::char_traits<char>, std::__ndk1::allocator<char> > > >*)'
clang++.exe: error: linker command failed with exit code 1 (use -v to see invocation)
ninja: build stopped: subcommand failed.
источник

A

Alexey in Android NDK (C++) — русскоговорящее сообщество
Отдельно проект acrosync собирается  без ошибок и работает, всё в порядке
источник

DD

Denis Dodonov in Android NDK (C++) — русскоговорящее сообщество
Чёт не читаемо, похоже ты не слинковал с либой.
источник

A

Alexey in Android NDK (C++) — русскоговорящее сообщество
Да, я тут дальше пытаюсь разбираться. Часть проблемы поборол: я не собрал остальные объекты, которые  ине могли прилинковаться. Теперь мне надо собрать библиотеку libssh2 в *.so чтобы её тоже прилинковать. На этом этапе теперь возникли проблемы.
источник

A

Alexey in Android NDK (C++) — русскоговорящее сообщество
Очень тернист путь с применением NDK )
источник

o

oles in Android NDK (C++) — русскоговорящее сообщество
просто надо сначала разобраться с кросс компиляцией
источник

A

Alexey in Android NDK (C++) — русскоговорящее сообщество
Согласен. Еще огромная проблема - windows...
источник

o

oles in Android NDK (C++) — русскоговорящее сообщество
Alexey
Согласен. Еще огромная проблема - windows...
а что с виндой не так?
источник