ilya.guzikovJuly 7, 2019, 7:23 a.m.

Qt, Android, при сборке выдаёт ошибку can not find -lc++

Сделал сборку для андроида.
Версия SDK: 26.1.1, Версия NDK: 20.0.5594570
JDK версия 8

получаю 2 ошибки при сборке:
error: cannot find -lc++
error: linker command failed with exit code 1 (use -v to see invocation)
Подскажите пожалуйста, в чём может быть ошибка.

We recommend hosting TIMEWEB
We recommend hosting TIMEWEB
Stable hosting, on which the social network EVILEG is located. For projects on Django we recommend VDS hosting.
27

Операционная система Linux? Компилятор установили?

sudo apt install gcc g++

операционная система windows
все проекты для windows собираются и работают без проблем

вот консоль сборки

D:\Work\QtAndroid\android-ndk-r20/toolchains/arm-linux-androideabi-4.9/prebuilt/windows-x86_64/lib/gcc/arm-linux-androideabi/4.9.x/../../../../arm-linux-androideabi/bin\ld: error: cannot find -lc++
clang++: error: linker command failed with exit code 1 (use -v to see invocation)
make: *** [libANDROID1.so] Error 1
16:02:55: Процесс «D:\Work\QtAndroid\android-ndk-r20\prebuilt\windows-x86_64\bin\make.exe» завершился с кодом 2.
Ошибка при сборке/установке проекта ANDROID1 (комплект: Android для armeabi-v7a (Clang Qt 5.12.0 for Android ARMv7))

Воспользуйтесь линуксом) там проще все решается

А что с комплектами для Андроид в Maitenance Tool, там всё нормально установилось? И почему-то у вас просит clang++, не может быть так, что у вас комплект разработки для clang? А самого clang нет на ПК?

весь комплект для андроида устанавливал через android studio т.к. через Qt Creator устанавливает не корректно.
может, какой-то копонент при установке Qt Creator необходимо доустановить.
BlinCT хочется именно на windows, основная операционка.

Я имел ввиду комплекты сборки с библиотеками Qt, которые устанавливаются через Maintenance Tools. Они также должны быть установлены помимо SDK и NDK, которые вы уже установили. Без них не получится собрать проект под Андроид.

Вот здесь установлены эти пакеты?

да, всё установлено

А что в Tool -> Options -> Kit?

Как там обстоит ситуация с настройкой компиляторов?

вроде всё настроено

собственно, обновилась андроид студия и такая же ситуация. до обновления было норм

Зачем вам эта студия? Есть же более лучшие варианты, IntelliJ IDEA вот это отличный выбор по сравнению с убогой если честно Android Studio.

А ничего, что IntelliJ IDEA и Android Studio - это одно и тоже? Просто Android Studio - это специализированный форк IntelliJ IDEA?

Открой JetBrains Toolbox и посмотри, что там же предлагается к установке и Android Studio

То что форк это понятно, но он на столько плох.
Кароче "такого при Сталине не было". Таких проблем там не возникало никогда.

Интересный вопрос, специализированный инструмент, который официально поддерживается Google Company хуже базового инcтрументария, который в Intellij Idea Community Edition является урезанным по умолчанию и нужно по хорошему покупать Proffesional Edition, что априори глупо, поскольку Android Studio является бесплатным продуктом, в отличии от первого.

И при том, что в данной проблеме, которая описывается в топике, очевидно проскальзывает баг со стороны Qt Creator, а ведь они постоянно лажают с выпусками и через выпуск в Qt Creator всегда крашится поддержка Android.

А вот это вообще не аргумент -> Кароче "такого при Сталине не было".

Ну само собою я подразумевал не Community Edition а Proffesional Edition.
Она полноценная.

на баг репорте ( тут ) нашел временное решение (обход), пока не появится исправление в версиях 5.12.5 / 5.13.1. нужно в про добавить

android {
    QMAKE_LFLAGS += -nostdlib++
}

Алексей ваш совет помог, сборка продвинулась дальше, однако qt не видит внешнее устройство, а эмулятор грузится минут 30.
получаю вот такое сообщение при сборке
BUILD FAILED in 10s
3 actionable tasks: 1 executed, 2 up-to-date
Building the android package failed!
-- For more information, run this command with --verbose.
15:52:50: Процесс «C:\Qt\5.12.0\android_armv7\bin\androiddeployqt.exe» завершился с кодом 14.
Ошибка при сборке/установке проекта ANDROID1 (комплект: Android для armeabi-v7a (Clang Qt 5.12.0 for Android ARMv7))
Во время выполнения этапа «Сборка Android APK»

ну у меня как раз все на оборот, на телефон сборка идет а эмулятор не видет

как вариант могу предложить поставить более старую версию андроид студии и не обновлятье ее, может помочь

Алексей, вы работаете под Windows?

да

сейчас видит внешнее устройство, но так же не собирается, ошибка та же

Добавил вставку из баг репорта
android {
QMAKE_LFLAGS += -nostdlib++
}

ошибка пропала, но проект не собирается, в консоле сборки выводит

BUILD FAILED in 48s
3 actionable tasks: 1 executed, 2 up-to-date
Building the android package failed!
-- For more information, run this command with --verbose.
19:29:42: Процесс «C:\Qt\5.12.0\android_armv7\bin\androiddeployqt.exe» завершился с кодом 14.
Ошибка при сборке/установке проекта ANDROID1 (комплект: Android для armeabi-v7a (Clang Qt 5.12.0 for Android ARMv7))
Во время выполнения этапа «Сборка Android APK»

может ещё есть предложения, на линуксе qt вообще никакие комплекты не собирает

спустя несколько попыток эксперементов, теперь во время сборки вываливает сообщение "Прекращена работа программы aidl.exe". переустановка всей андроид студии не помогает, копировал папку Android, с машины где все работает - результат тот же.

У меня результат следующий. На Windows ничего не заработало. Установид Linux поставил qt, sdk, jdk, ndk и такая же ошибка вылезла, которая описана в теме обсуждения.
Воспользовался советом Aleksej Vnukov и в pro file добавил вставку:
android {
QMAKE_LFLAGS += -nostdlib++
}

после этого ошибки пропали, но проект не собирался.
затем в sdk manager удалил образ ARM EABI v7a System Image
и проект собрался

AD

Проблема из-за NDK 20.x решена здесь https://codereview.qt-project.org/c/qt/qtbase/+/264903/9/mkspecs/android-clang/qmake.conf#34
Сейчас обновился на NDK 21. Появилась еще одна проблема. Пока не решил. Не обновляйтесь на NDK 21!!! теперь вот не знаю, как откатиться на ndk 20...

H

Откатывать ничего не нужно. Я делал так: скачивал нужную версию NDK, распоковывал её и в QtCreator указывал к ней путь. У меня так работает.

Comments

Only authorized users can post comments.
Please, Log in or Sign up
How to become an author?

Contribute to the evolution of the EVILEG community.

Learn how to become a site author.

Learn it
Donate

Good day, Dear Users!!!

I am Evgenii Legotckoi, developer of EVILEG. And it is my hobby project, which helps to learn programming another programmers and developers

If the site helped you, and you want also support the development of the site, than you can donate by following ways

PayPalYandex.Money
Timeweb

Let me recommend you the excellent hosting on which EVILEG is located.

For many years, Timeweb has been proving his stability.

For projects on Django I recommend VDS hosting

View Hosting
KA

C++ - Тест 003. Условия и циклы

  • Result:78points,
  • Rating points2
R

C++ - Test 002. Constants

  • Result:75points,
  • Rating points2
R

C++ - Test 001. The first program and data types

  • Result:73points,
  • Rating points1
Last comments
V

Django - Tutorial 027. Implementation Google reCAPTCHA

Спасибо. Только использую декоратор не в urls.py а перед views
R

Qt WinAPI - Lesson 001. How to collect all DLL, which used in Qt project?

Вы меня не совсем правильно поняли, но все равно спасибо, принял все к сведению. Все сделал как вы сказали, все отлично работает, еще раз огромнейшее спасибо) Разве что только что были опять про…

Qt WinAPI - Lesson 001. How to collect all DLL, which used in Qt project?

Стоило перед использованием что ли инструкцию прочитать https://www.cyberforum.ru/blogs/131347/blog2457.html "После сборки при запуске требовались dll," Ясное дело стоило задепло…
R
R

Qt WinAPI - Lesson 001. How to collect all DLL, which used in Qt project?

Да, собралось. После сборки при запуске требовались dll, перекинул всю папки bin, plugins(не знаю как можно было сделать более умно). Как я понял в первой строке путь к екзешнику вставляю, втор…
Now discuss on the forum

Как в Qt сохранить файл в папку загрузок в Android

Вызывайте эту функцию или в самом начале, или когда нужно сохранять файлы. Она дает права доступа для записи.

QML+QtGraphicalEffects

да, сборку делал без параметра поиска qml, хотя dll QtGraphicalEffects он подтягивает, когда я добавил всю папку QtGraphicalEffects в проект - то заработало, похоже что именно qml-файлов ему не …

Не работают слоты/сигналы

и посмотрите работу с потоками в Qt, там подробно описано как передавать данные с одного в потока в другой при помощи сигналов и слотов

Как в Qt в qmenu добавить scrollarea

Вот это наследованный класс меню. Но посути это обычное меню. #pragma once#include <QtWidgets>class TransMenu : public QMenu { Q_OBJECTpublic: TransMenu(QWidget* parent = …

Qt C++ и Python

Красиво/некрасиво - это скорее моё личное отношение. Если есть возможность ограничить количество интсрументов, то лучше ограничить. Но не зацикливайтесь на этом. Если у вас есть скрипты Py…
About
Services
© EVILEG 2015-2020
Recommend hosting TIMEWEB