Попытка создать приложение PyQt5 для Android и получить ошибку ссылки: не удается найти -lc ++ - PullRequest
0 голосов
/ 18 июня 2019

Я пытаюсь собрать демонстрационное приложение из pyqtdeploy, и я сталкиваюсь с этой ошибкой компоновщика.
не могу найти -lc ++

Вот команда, которая генерирует ошибку:

/home/art/Android/Sdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/bin/clang++ -D__ANDROID_API__=27 -target aarch64-none-linux-android -gcc-toolchain /home/art/Android/Sdk/ndk-bundle/toolchains/aarch64-linux-android-4.9/prebuilt/linux-x86_64 -fno-limit-debug-info -Wl,--exclude-libs,libgcc.a -Wl,--exclude-libs,libatomic.a --sysroot=/home/art/Android/Sdk/ndk-bundle/platforms/android-27/arch-arm64/ -Wl,-soname,libpyqt-demo.so -Wl,-rpath=/home/art/Qt/5.12.3/android_arm64_v8a/lib -Wl,--no-undefined -Wl,-z,noexecstack -shared -o libpyqt-demo.so pyqtdeploy_main.o pyqtdeploy_start.o pdytools_module.o _abc.o _bisectmodule.o blake2b_impl.o blake2module.o blake2s_impl.o _datetimemodule.o _hashopenssl.o _heapqmodule.o _math.o _posixsubprocess.o _randommodule.o sha3module.o _ssl.o _struct.o binascii.o mathmodule.o selectmodule.o socketmodule.o zlibmodule.o qrc_pyqtdeploy.o   -L/home/art/Sourcecode/pyqtdeploy-2.4/demo/sysroot-android-64/lib -L/home/art/Sourcecode/pyqtdeploy-2.4/demo/sysroot-android-64/lib/python3.7/site-packages/PyQt5 -lQtAndroidExtras -lQtCore -lQtGui -lQtNetwork -lQtWidgets -lcrypto -lpython3.7 -lsip -lssl -lz -L/home/art/Qt/5.12.3/android_arm64_v8a/lib -lQt5Widgets -L/opt/android/android-ndk-r18b/sources/cxx-stl/llvm-libc++/libs/arm64-v8a -lQt5Gui -lQt5Network -lQt5AndroidExtras -lQt5Core -lGLESv2  -L/home/art/Android/Sdk/ndk-bundle/sources/cxx-stl/llvm-libc++/libs/arm64-v8a /home/art/Android/Sdk/ndk-bundle/sources/cxx-stl/llvm-libc++/libs/arm64-v8a/libc++.so.27 -llog -lz -lm -ldl -lc -v
Android (5220042 based on r346389c) clang version 8.0.7 (https://android.googlesource.com/toolchain/clang b55f2d4ebfd35bf643d27dbca1bb228957008617) (https://android.googlesource.com/toolchain/llvm 3c393fe7a7e13b0fba4ac75a01aa683d7a5b11cd) (based on LLVM 8.0.7svn)
Target: aarch64-none-linux-android
Thread model: posix
InstalledDir: /home/art/Android/Sdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/bin
Found candidate GCC installation: /home/art/Android/Sdk/ndk-bundle/toolchains/aarch64-linux-android-4.9/prebuilt/linux-x86_64/lib/gcc/aarch64-linux-android/4.9.x
Selected GCC installation: /home/art/Android/Sdk/ndk-bundle/toolchains/aarch64-linux-android-4.9/prebuilt/linux-x86_64/lib/gcc/aarch64-linux-android/4.9.x
Candidate multilib: .;@m64
Selected multilib: .;@m64
 "/home/art/Android/Sdk/ndk-bundle/toolchains/aarch64-linux-android-4.9/prebuilt/linux-x86_64/lib/gcc/aarch64-linux-android/4.9.x/../../../../aarch64-linux-android/bin/ld" --sysroot=/home/art/Android/Sdk/ndk-bundle/platforms/android-27/arch-arm64/ -EL --fix-cortex-a53-843419 -z now -z relro --hash-style=both --enable-new-dtags --eh-frame-hdr -m aarch64linux -shared -o libpyqt-demo.so /home/art/Android/Sdk/ndk-bundle/platforms/android-27/arch-arm64//usr/lib/crtbegin_so.o -L/home/art/Sourcecode/pyqtdeploy-2.4/demo/sysroot-android-64/lib -L/home/art/Sourcecode/pyqtdeploy-2.4/demo/sysroot-android-64/lib/python3.7/site-packages/PyQt5 -L/home/art/Qt/5.12.3/android_arm64_v8a/lib -L/opt/android/android-ndk-r18b/sources/cxx-stl/llvm-libc++/libs/arm64-v8a -L/home/art/Android/Sdk/ndk-bundle/sources/cxx-stl/llvm-libc++/libs/arm64-v8a -L/home/art/Android/Sdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/lib64/clang/8.0.7/lib/linux/aarch64 -L/home/art/Android/Sdk/ndk-bundle/toolchains/aarch64-linux-android-4.9/prebuilt/linux-x86_64/lib/gcc/aarch64-linux-android/4.9.x -L/home/art/Android/Sdk/ndk-bundle/toolchains/aarch64-linux-android-4.9/prebuilt/linux-x86_64/lib/gcc/aarch64-linux-android/4.9.x/../../../../aarch64-linux-android/lib/../lib64 -L/home/art/Android/Sdk/ndk-bundle/toolchains/aarch64-linux-android-4.9/prebuilt/linux-x86_64/lib/gcc/aarch64-linux-android/4.9.x/../../../../aarch64-linux-android/lib -L/home/art/Android/Sdk/ndk-bundle/platforms/android-27/arch-arm64//usr/lib --exclude-libs libgcc.a --exclude-libs libatomic.a -soname libpyqt-demo.so -rpath=/home/art/Qt/5.12.3/android_arm64_v8a/lib --no-undefined -z noexecstack pyqtdeploy_main.o pyqtdeploy_start.o pdytools_module.o _abc.o _bisectmodule.o blake2b_impl.o blake2module.o blake2s_impl.o _datetimemodule.o _hashopenssl.o _heapqmodule.o _math.o _posixsubprocess.o _randommodule.o sha3module.o _ssl.o _struct.o binascii.o mathmodule.o selectmodule.o socketmodule.o zlibmodule.o qrc_pyqtdeploy.o -lQtAndroidExtras -lQtCore -lQtGui -lQtNetwork -lQtWidgets -lcrypto -lpython3.7 -lsip -lssl -lz -lQt5Widgets -lQt5Gui -lQt5Network -lQt5AndroidExtras -lQt5Core -lGLESv2 /home/art/Android/Sdk/ndk-bundle/sources/cxx-stl/llvm-libc++/libs/arm64-v8a/libc++.so.27 -llog -lz -lm -ldl -lc -lc++ -lm -lgcc -ldl -lc -lgcc -ldl /home/art/Android/Sdk/ndk-bundle/platforms/android-27/arch-arm64//usr/lib/crtend_so.o
/home/art/Android/Sdk/ndk-bundle/toolchains/aarch64-linux-android-4.9/prebuilt/linux-x86_64/lib/gcc/aarch64-linux-android/4.9.x/../../../../aarch64-linux-android/bin/ld: cannot find -lc++
clang++: error: linker command failed with exit code 1 (use -v to see invocation)

У кого-нибудь есть идеи, как это исправить?

Ответы [ 2 ]

0 голосов
/ 24 июня 2019

На случай, если другие люди столкнутся с подобной проблемой.
Я мог бы решить эту проблему, используя NDK 19 вместо NDK-20.

0 голосов
/ 18 июня 2019

В компиляторе отсутствует этот файл: /home/art/Android/Sdk/ndk-bundle/sources/cxx-stl/llvm-libc++/libs/arm64-v8a/libc++.so.27, указанный как зависимость в вызов. посмотрите, есть ли это в вашей системе. Если нет, вы можете попытаться найти его с s.th. как:

find /home/art/ -name "libc++.so.27"

Или даже более обобщенно:

find /home/art -name "libc++.so*"

чтобы найти другие версии этого файла. Если вы не можете найти его в ожидаемой версии, я думаю, у вас нет нужного SDK. Попробуйте убраться. (не знаю, что вы делаете, но, возможно, скачайте версию демонстрационного приложения, которая подходит для SDK?!)

...