Qt не видит заголовочники стандартных либ

Ответить
Satana_00
Сообщения: 32
Зарегистрирован: 29 апр 2017, 21:26
Operating system: Rosa R*

Qt не видит заголовочники стандартных либ

Сообщение Satana_00 » 29 апр 2017, 21:44

Установлен Qt 5.8.0.
Проблема появилась ещё в R8, в R7 все нормально.
Проблема именно на 64-битной версии, на 32-битной этой проблемы нет.
Нужные заголовочники-либы установленны! Программа компилируется, просто Qt не хочет их видеть.

Проблема явно не в Qt, пробовал разные версии, опять же повторю - R7 все нормально, так же как и в 32-битной версии, в OpenSUSE все нормально, проблема где то в ROSA.
Только не предлагайте скопировать в папку Qt все заголовочники, этот кустарный метод хоть и сработает но это сами понимаете что так не должно быть, Qt не хочет с системы подхватывать заголовочники.

Как решить эту проблему?
Вложения
Screenshot_20170430_214158.png
Скрин

Аватара пользователя
tverskoy
Сообщения: 1135
Зарегистрирован: 12 сен 2011, 13:30
Operating system: Rosa 2016.1 Fresh
Откуда: Тверь

Re: Qt не видит заголовочники стандартных либ

Сообщение tverskoy » 30 апр 2017, 01:57

путь до библиотек неверно указываешь

Satana_00
Сообщения: 32
Зарегистрирован: 29 апр 2017, 21:26
Operating system: Rosa R*

Re: Qt не видит заголовочники стандартных либ

Сообщение Satana_00 » 30 апр 2017, 22:40

Всмысле не правильно? На более старых роса да и на suse, все работает, а тут я значит путь не правильно указываю? Почему эта ошибка появилась ещё в роса r8, эта проблема только в роса в других дистрах и старых росах такой чуши нет.

Qt всегда сам из системы все подхватывал, повторю ещё раз: эта фигня появилась ещё в ROSA R8 на 64-битной версии, на 32-битных все само подхватывает из системы так как это и должно быть в принципе.

Подозреваю что ROSA R(8-9) 64-бит при установке компилятора что то где то не дописывает в систему - знать бы только что и куда.

Можете по подробнее?
Последний раз редактировалось Satana_00 30 апр 2017, 22:51, всего редактировалось 1 раз.

Аватара пользователя
Zeffanyx
Сообщения: 1345
Зарегистрирован: 12 сен 2011, 14:25
Operating system: Rosa Fresh R11, OpenMandriva Lx 4 (Cooker)
Откуда: Санкт-Петербург

Re: Qt не видит заголовочники стандартных либ

Сообщение Zeffanyx » 30 апр 2017, 22:44

Satana_00 писал(а): Можете по подробнее?
Особенность Мандривы/Росы в том, что 64-битные либы называются как lib64qt*-devel, а не libqt*-devel. Может быть, в этом дело?

Satana_00
Сообщения: 32
Зарегистрирован: 29 апр 2017, 21:26
Operating system: Rosa R*

Re: Qt не видит заголовочники стандартных либ

Сообщение Satana_00 » 30 апр 2017, 22:55

Zeffanyx писал(а):
Satana_00 писал(а): Можете по подробнее?
Особенность Мандривы/Росы в том, что 64-битные либы называются как lib64qt*-devel, а не libqt*-devel. Может быть, в этом дело?
Причем здесь lib64qt*-devel, если речь идет о встроенных либах с++, Qt все свое прекрасно видит.
Ведь в R7 небыло такой чуши и все прекрасно было.

------------
Нужно было мне сразу в тексте написать подробнее а не скриншотом часть проблемы показывать)))), я имею ввиду именно инклуды плюсов.
------------
Последний раз редактировалось Satana_00 30 апр 2017, 22:57, всего редактировалось 1 раз.

Аватара пользователя
tverskoy
Сообщения: 1135
Зарегистрирован: 12 сен 2011, 13:30
Operating system: Rosa 2016.1 Fresh
Откуда: Тверь

Re: Qt не видит заголовочники стандартных либ

Сообщение tverskoy » 30 апр 2017, 22:56

библиотеки находятся в /lib64 и /usr/lib64, без указания пути ищет в /lib

Satana_00
Сообщения: 32
Зарегистрирован: 29 апр 2017, 21:26
Operating system: Rosa R*

Re: Qt не видит заголовочники стандартных либ

Сообщение Satana_00 » 30 апр 2017, 23:00

tverskoy писал(а):библиотеки находятся в /lib64 и /usr/lib64, без указания пути ищет в /lib
Qt 64-битный и ищет он там где надо. Обратите внимание на скриншот.

Аватара пользователя
tverskoy
Сообщения: 1135
Зарегистрирован: 12 сен 2011, 13:30
Operating system: Rosa 2016.1 Fresh
Откуда: Тверь

Re: Qt не видит заголовочники стандартных либ

Сообщение tverskoy » 01 май 2017, 00:12

на скриншоте только Hello World вижу

Аватара пользователя
admsasha
Сообщения: 276
Зарегистрирован: 25 ноя 2011, 17:54
Operating system: ROSA
Контактная информация:

Re: Qt не видит заголовочники стандартных либ

Сообщение admsasha » 01 май 2017, 17:04

Satana_00 писал(а):Установлен Qt 5.8.0.
Проблема появилась ещё в R8, в R7 все нормально.
Проблема именно на 64-битной версии, на 32-битной этой проблемы нет.
Нужные заголовочники-либы установленны! Программа компилируется, просто Qt не хочет их видеть.

Проблема явно не в Qt, пробовал разные версии, опять же повторю - R7 все нормально, так же как и в 32-битной версии, в OpenSUSE все нормально, проблема где то в ROSA.
Только не предлагайте скопировать в папку Qt все заголовочники, этот кустарный метод хоть и сработает но это сами понимаете что так не должно быть, Qt не хочет с системы подхватывать заголовочники.

Как решить эту проблему?
У меня на R8.1 проблемы такой нету. Даже переход по F2 работает.

Аватара пользователя
admsasha
Сообщения: 276
Зарегистрирован: 25 ноя 2011, 17:54
Operating system: ROSA
Контактная информация:

Re: Qt не видит заголовочники стандартных либ

Сообщение admsasha » 02 май 2017, 04:08

В R9 действительно баг есть. Проверил на свежеустановленной системе.

keleg
Сообщения: 5444
Зарегистрирован: 15 сен 2011, 01:58

Re: Qt не видит заголовочники стандартных либ

Сообщение keleg » 02 май 2017, 10:11

А напишите точный порядок воспроизведения ошибки. Программы-то в репозиториях как-то собрались, значит компилятор все нашел.

Аватара пользователя
admsasha
Сообщения: 276
Зарегистрирован: 25 ноя 2011, 17:54
Operating system: ROSA
Контактная информация:

Re: Qt не видит заголовочники стандартных либ

Сообщение admsasha » 02 май 2017, 11:53

keleg писал(а):А напишите точный порядок воспроизведения ошибки. Программы-то в репозиториях как-то собрались, значит компилятор все нашел.
Речь идет не про компилятор, а про IDE (qt-creator). IDE не видит системных заголовочных файлов, например iostream.

Воспроизвести просто. Объявите любую системную библиотеку (не Qt, а из C++) и посмотрите как IDE себя поведет. Будет ли она давать подсказки из этого файла?

Ну или как на скриншете, наберите "#include <" после чего выйдет список всех видимых для IDE библиотек, и попробуйте там найти тот же iostream.

Сравните результаты с IDE которая была в R8.1 (возможно на чистом R8.1 такой же баг, так что лучше на R7)

Еще раз обращаю внимание, что речь идет только о IDE. В при самой сборке все include подключаются корректно. Точнее, на том примере что я тестировал. Пока, к сожалению, R9 не пользуюсь, не могу точно сказать где еще проявляется баги, я только пытаюсь помочь автору этого топика. Ну и конечно же мне это тоже в последствии скажется.
Вложения
bug.png

Аватара пользователя
VictorR2007
Сообщения: 5944
Зарегистрирован: 12 сен 2011, 13:00
Operating system: ROSA 2016.1
Откуда: Северодвинск

Re: Qt не видит заголовочники стандартных либ

Сообщение VictorR2007 » 02 май 2017, 14:04

А вы этот устанавливали?
http://abf-downloads.rosalinux.ru/rosa2 ... n/release/

crasher332
Сообщения: 81
Зарегистрирован: 25 июл 2016, 13:40
Operating system: ROSA DESKTOP FRESH R10 (PLASMA)

Re: Qt не видит заголовочники стандартных либ

Сообщение crasher332 » 02 май 2017, 14:31

У меня на R9 та же проблема (все предложенные VictorR2007 пакеты установлены), но как-то не придал значения, ведь всё компилируется, а стандартные "либы" использую не так уж и часто. Не знаю, может разработчикам поможет - такая же проблема проявляется и на предыдущих версиях "росы", если устанавливать Qt не из репозитория, а с оф. сайта Qt. Тогда тоже - Qt не видит стандартные "либы", но всё компилируется. Хотя пути к компиляторам и анализатору IDE находит без проблем.

Аватара пользователя
admsasha
Сообщения: 276
Зарегистрирован: 25 ноя 2011, 17:54
Operating system: ROSA
Контактная информация:

Re: Qt не видит заголовочники стандартных либ

Сообщение admsasha » 02 май 2017, 16:13

crasher332 писал(а):У меня на R9 та же проблема (все предложенные VictorR2007 пакеты установлены), но как-то не придал значения, ведь всё компилируется, а стандартные "либы" использую не так уж и часто. Не знаю, может разработчикам поможет - такая же проблема проявляется и на предыдущих версиях "росы", если устанавливать Qt не из репозитория, а с оф. сайта Qt. Тогда тоже - Qt не видит стандартные "либы", но всё компилируется. Хотя пути к компиляторам и анализатору IDE находит без проблем.
Лично у меня часто. Я Qt-Creator использую как редактор C++. Не важно на Qt проект или нет. Ставил из официального репозитория.

keleg
Сообщения: 5444
Зарегистрирован: 15 сен 2011, 01:58

Re: Qt не видит заголовочники стандартных либ

Сообщение keleg » 02 май 2017, 16:34

Наивный вопрос - а компилер c++ -то установлен? А то в комплекте его нету.

crasher332
Сообщения: 81
Зарегистрирован: 25 июл 2016, 13:40
Operating system: ROSA DESKTOP FRESH R10 (PLASMA)

Re: Qt не видит заголовочники стандартных либ

Сообщение crasher332 » 02 май 2017, 17:08

keleg писал(а):Наивный вопрос - а компилер c++ -то установлен? А то в комплекте его нету.
Установлены gcc, g++, clang, clang++ (соответственно пакеты: gcc, gcc-c++, gcc-cpp, clang, ну и "либы" к ним). Может ещё что нужно поставить?

Аватара пользователя
Pulfer
Сообщения: 3358
Зарегистрирован: 15 фев 2012, 01:57
Operating system: ROSA Desktop Fresh 2016.1 i586
Откуда: Vladivostok, Russia

Re: Qt не видит заголовочники стандартных либ

Сообщение Pulfer » 02 май 2017, 18:33

Получается, что Qt Creator берёт для подстановки заголовочные файлы, которые находит в путях INCLUDEPATH. И если прописать в проекте (*.pro)

Код: Выделить всё

INCLUDEPATH+=/usr/include
то будут подставляться все заголовки из /usr/include. Но некоторые стандартные заголовки лежат в /usr/include/c++/5.3.1/ (которые из libstdc++-devel), так что одного /usr/include мало.

Не знаю даже, баг это или фича, подставлять по умолчанию только Qt-заголовки. Но может получится разобраться и сделать так, чтобы подставлял всё стандартное по умолчанию.
Intel Core i7-6700 / 8 Gb RAM / GeForce GTX 750 Ti / Rosa 2016.1 i586

trs
Сообщения: 1939
Зарегистрирован: 07 сен 2015, 16:08
Operating system: -

Re: Qt не видит заголовочники стандартных либ

Сообщение trs » 02 май 2017, 18:54

Вот так QT Creator ищет пути заголовков:

Код: Выделить всё

QList<HeaderPath> GccToolChain::gccHeaderPaths(const FileName &gcc, const QStringList &arguments,
                                               const QStringList &env)
{
    QList<HeaderPath> systemHeaderPaths;
    QByteArray line;
    QByteArray data = runGcc(gcc, arguments, env);
    QBuffer cpp(&data);
    cpp.open(QIODevice::ReadOnly);
    while (cpp.canReadLine()) {
        line = cpp.readLine();
        if (line.startsWith("#include"))
            break;
    }

    if (!line.isEmpty() && line.startsWith("#include")) {
        HeaderPath::Kind kind = HeaderPath::UserHeaderPath;
        while (cpp.canReadLine()) {
            line = cpp.readLine();
            if (line.startsWith("#include")) {
                kind = HeaderPath::GlobalHeaderPath;
            } else if (! line.isEmpty() && QChar(QLatin1Char(line.at(0))).isSpace()) {
                HeaderPath::Kind thisHeaderKind = kind;

                line = line.trimmed();

                const int index = line.indexOf(" (framework directory)");
                if (index != -1) {
                    line.truncate(index);
                    thisHeaderKind = HeaderPath::FrameworkHeaderPath;
                }

                systemHeaderPaths.append(HeaderPath(QFile::decodeName(line), thisHeaderKind));
            } else if (line.startsWith("End of search list.")) {
                break;
            } else {
                qWarning("%s: Ignoring line: %s", __FUNCTION__, line.constData());
            }
        }
    }
    return systemHeaderPaths;
}


QList<HeaderPath> GccToolChain::systemHeaderPaths(const QStringList &cxxflags, const FileName &sysRoot) const
{
///...

        // Prepare arguments
        QStringList arguments;

///...

        arguments << QLatin1String("-xc++")
                  << QLatin1String("-E")
                  << QLatin1String("-v")
                  << QLatin1String("-");

        m_headerPaths = gccHeaderPaths(m_compilerCommand, reinterpretOptions(arguments), env.toStringList());
как я понял, вызывается gcc со следующими параматрами, и получается:

Код: Выделить всё

$ gcc -xc++ -E -v -
Используются внутренние спецификации.
COLLECT_GCC=gcc
Целевая архитектура: x86_64-unknown-linux-gnu
Параметры конфигурации: ../configure --prefix=/usr --libdir=/usr/lib64 --libexecdir=/usr/lib64 --mandir=/usr/share/man --infodir=/usr/share/info --disable-libjava-multilib --with-java-home=/usr/lib/jvm/java-1.5.0-gcj-1.5.0.0/jre --with-ecj-jar=/usr/share/java/eclipse-ecj.jar --enable-java-awt=gtk --enable-gtk-cairo --with-cloog --with-ppl --enable-cloog-backend=isl --disable-cloog-version-check --disable-libssp --disable-libunwind-exceptions --disable-werror --enable-__cxa_atexit --enable-gold=default --with-plugin-ld=/usr/bin/ld --enable-bootstrap --enable-checking=release --enable-gnu-unique-object --enable-languages=c,ada,c++,fortran,go,java,lto,objc,obj-c++ --enable-linker-build-id --enable-plugin --enable-lto --enable-shared --enable-threads=posix --with-system-zlib --with-bugurl=http://bugs.rosalinux.ru/ --with-tune=generic --with-arch_32=i586 --with-multilib-list=m32,m64 --host=x86_64-unknown-linux-gnu --build=x86_64-unknown-linux-gnu --target=x86_64-unknown-linux-gnu
Модель многопоточности: posix
gcc версия 5.3.1 20160412 (ROSA) (Linaro GCC 5.3-2016.05) 
COLLECT_GCC_OPTIONS='-E' '-v' '-mtune=generic' '-march=x86-64'
 /usr/lib64/gcc/x86_64-unknown-linux-gnu/5.3.1/cc1plus -E -quiet -v -D_GNU_SOURCE - -mtune=generic -march=x86-64
несуществующий каталог "/usr/lib64/gcc/x86_64-unknown-linux-gnu/5.3.1/include-fixed" проигнорирован
несуществующий каталог "/usr/lib64/gcc/x86_64-unknown-linux-gnu/5.3.1/../../../../x86_64-unknown-linux-gnu/include" проигнорирован
порядок поиска для #include "...":
порядок поиска для #include <...>:
 /usr/lib64/gcc/x86_64-unknown-linux-gnu/5.3.1/../../../../include/c++/5.3.1
 /usr/lib64/gcc/x86_64-unknown-linux-gnu/5.3.1/../../../../include/c++/5.3.1/x86_64-unknown-linux-gnu
 /usr/lib64/gcc/x86_64-unknown-linux-gnu/5.3.1/../../../../include/c++/5.3.1/backward
 /usr/lib64/gcc/x86_64-unknown-linux-gnu/5.3.1/include
 /usr/local/include
 /usr/include
Конец списка поиска.
При этом в выдаче строка "Конец списка поиска." а ожидается "End of search list." Но это не беда.

А вот что значит line.startsWith("#include") ?
у нас ведь срока начинается с текста "порядок поиска для" — может потому и не находит /usr/include/c++/5.3.1/?

Аватара пользователя
Pulfer
Сообщения: 3358
Зарегистрирован: 15 фев 2012, 01:57
Operating system: ROSA Desktop Fresh 2016.1 i586
Откуда: Vladivostok, Russia

Re: Qt не видит заголовочники стандартных либ

Сообщение Pulfer » 02 май 2017, 19:03

trs писал(а):При этом в выдаче строка "Конец списка поиска." а ожидается "End of search list." Но это не беда.

А вот что значит line.startsWith("#include") ?
у нас ведь срока начинается с текаста "порядок поиска для" — может потому и не находит /usr/include/c++/5.3.1/?
Всё так и оказалось, дело в локализации. Если запускать "LC_ALL=C qtcreator", то пути заголовков правильно определяются. Сейчас сделаем патчик... Спасибо за наводку :-)
Intel Core i7-6700 / 8 Gb RAM / GeForce GTX 750 Ti / Rosa 2016.1 i586

trs
Сообщения: 1939
Зарегистрирован: 07 сен 2015, 16:08
Operating system: -

Re: Qt не видит заголовочники стандартных либ

Сообщение trs » 02 май 2017, 19:10

Тьфу, а я с LC_LANG=C запускал :oops:

Аватара пользователя
Pulfer
Сообщения: 3358
Зарегистрирован: 15 фев 2012, 01:57
Operating system: ROSA Desktop Fresh 2016.1 i586
Откуда: Vladivostok, Russia

Re: Qt не видит заголовочники стандартных либ

Сообщение Pulfer » 10 май 2017, 14:53

Qt Creator 4.2.2 сегодня ушёл в обновления в репозитории для rosa2014.1 и rosa2016.1. Там исправлена и эта, и ещё ряд ошибок (file.file при запуске, некоторые рекомендованные зависимости и т.д.).
Intel Core i7-6700 / 8 Gb RAM / GeForce GTX 750 Ti / Rosa 2016.1 i586

crasher332
Сообщения: 81
Зарегистрирован: 25 июл 2016, 13:40
Operating system: ROSA DESKTOP FRESH R10 (PLASMA)

Re: Qt не видит заголовочники стандартных либ

Сообщение crasher332 » 12 май 2017, 14:26

Pulfer писал(а):Qt Creator 4.2.2 сегодня ушёл в обновления в репозитории для rosa2014.1 и rosa2016.1. Там исправлена и эта, и ещё ряд ошибок (file.file при запуске, некоторые рекомендованные зависимости и т.д.).
Спасибо! Обновил - всё работает.

Satana_00
Сообщения: 32
Зарегистрирован: 29 апр 2017, 21:26
Operating system: Rosa R*

Re: Qt не видит заголовочники стандартных либ

Сообщение Satana_00 » 19 июн 2017, 23:47

Проблема как была так и осталась на Qt с офф сайта. Подскажите, къют который в репозитории РОСЫ имеет данную проблему?
===========
вот прям свежачек с офф сайта, вот не видит на РОСЕ Qt стандартные(системные) шляпы, только свои которые в комплекте шли: (ни при наборе не при ctrl+space)
Быть может как-то можно заставить Qt с офф сайта научить все это видеть(желательно без костылей)?
Вложения
Screenshot_20170620_234509.png

trs
Сообщения: 1939
Зарегистрирован: 07 сен 2015, 16:08
Operating system: -

Re: Qt не видит заголовочники стандартных либ

Сообщение trs » 20 июн 2017, 08:37

Попробуйте запустить так

Код: Выделить всё

LC_ALL=C qtcreator

Satana_00
Сообщения: 32
Зарегистрирован: 29 апр 2017, 21:26
Operating system: Rosa R*

Re: Qt не видит заголовочники стандартных либ

Сообщение Satana_00 » 20 июн 2017, 10:25

Шикарно, божественный запуск. Теперь работает.

keleg
Сообщения: 5444
Зарегистрирован: 15 сен 2011, 01:58

Re: Qt не видит заголовочники стандартных либ

Сообщение keleg » 20 июн 2017, 11:34

Satana_00 писал(а):Шикарно, божественный запуск. Теперь работает.
В репах мы эту проблему тоже решили.

Ответить