Qt не видит заголовочники стандартных либ
Qt не видит заголовочники стандартных либ
Установлен Qt 5.8.0.
Проблема появилась ещё в R8, в R7 все нормально.
Проблема именно на 64-битной версии, на 32-битной этой проблемы нет.
Нужные заголовочники-либы установленны! Программа компилируется, просто Qt не хочет их видеть.
Проблема явно не в Qt, пробовал разные версии, опять же повторю - R7 все нормально, так же как и в 32-битной версии, в OpenSUSE все нормально, проблема где то в ROSA.
Только не предлагайте скопировать в папку Qt все заголовочники, этот кустарный метод хоть и сработает но это сами понимаете что так не должно быть, Qt не хочет с системы подхватывать заголовочники.
Как решить эту проблему?
Проблема появилась ещё в R8, в R7 все нормально.
Проблема именно на 64-битной версии, на 32-битной этой проблемы нет.
Нужные заголовочники-либы установленны! Программа компилируется, просто Qt не хочет их видеть.
Проблема явно не в Qt, пробовал разные версии, опять же повторю - R7 все нормально, так же как и в 32-битной версии, в OpenSUSE все нормально, проблема где то в ROSA.
Только не предлагайте скопировать в папку Qt все заголовочники, этот кустарный метод хоть и сработает но это сами понимаете что так не должно быть, Qt не хочет с системы подхватывать заголовочники.
Как решить эту проблему?
Re: Qt не видит заголовочники стандартных либ
путь до библиотек неверно указываешь
Re: Qt не видит заголовочники стандартных либ
Всмысле не правильно? На более старых роса да и на suse, все работает, а тут я значит путь не правильно указываю? Почему эта ошибка появилась ещё в роса r8, эта проблема только в роса в других дистрах и старых росах такой чуши нет.
Qt всегда сам из системы все подхватывал, повторю ещё раз: эта фигня появилась ещё в ROSA R8 на 64-битной версии, на 32-битных все само подхватывает из системы так как это и должно быть в принципе.
Подозреваю что ROSA R(8-9) 64-бит при установке компилятора что то где то не дописывает в систему - знать бы только что и куда.
Можете по подробнее?
Qt всегда сам из системы все подхватывал, повторю ещё раз: эта фигня появилась ещё в ROSA R8 на 64-битной версии, на 32-битных все само подхватывает из системы так как это и должно быть в принципе.
Подозреваю что ROSA R(8-9) 64-бит при установке компилятора что то где то не дописывает в систему - знать бы только что и куда.
Можете по подробнее?
Последний раз редактировалось Satana_00 30 апр 2017, 22:51, всего редактировалось 1 раз.
Re: Qt не видит заголовочники стандартных либ
Особенность Мандривы/Росы в том, что 64-битные либы называются как lib64qt*-devel, а не libqt*-devel. Может быть, в этом дело?Satana_00 писал(а): Можете по подробнее?
Если натовцы завоюют Россию, они отнимут у народа нефть и газ, накупят себе яхты, особняки и дорогие автомобили. А народ сделают рабами и будут смеяться над ним. Вы этого хотите, да?
Re: Qt не видит заголовочники стандартных либ
Причем здесь lib64qt*-devel, если речь идет о встроенных либах с++, Qt все свое прекрасно видит.Zeffanyx писал(а):Особенность Мандривы/Росы в том, что 64-битные либы называются как lib64qt*-devel, а не libqt*-devel. Может быть, в этом дело?Satana_00 писал(а): Можете по подробнее?
Ведь в R7 небыло такой чуши и все прекрасно было.
------------
Нужно было мне сразу в тексте написать подробнее а не скриншотом часть проблемы показывать)))), я имею ввиду именно инклуды плюсов.
------------
Последний раз редактировалось Satana_00 30 апр 2017, 22:57, всего редактировалось 1 раз.
Re: Qt не видит заголовочники стандартных либ
библиотеки находятся в /lib64 и /usr/lib64, без указания пути ищет в /lib
Re: Qt не видит заголовочники стандартных либ
Qt 64-битный и ищет он там где надо. Обратите внимание на скриншот.tverskoy писал(а):библиотеки находятся в /lib64 и /usr/lib64, без указания пути ищет в /lib
Re: Qt не видит заголовочники стандартных либ
на скриншоте только Hello World вижу
Re: Qt не видит заголовочники стандартных либ
У меня на R8.1 проблемы такой нету. Даже переход по F2 работает.Satana_00 писал(а):Установлен Qt 5.8.0.
Проблема появилась ещё в R8, в R7 все нормально.
Проблема именно на 64-битной версии, на 32-битной этой проблемы нет.
Нужные заголовочники-либы установленны! Программа компилируется, просто Qt не хочет их видеть.
Проблема явно не в Qt, пробовал разные версии, опять же повторю - R7 все нормально, так же как и в 32-битной версии, в OpenSUSE все нормально, проблема где то в ROSA.
Только не предлагайте скопировать в папку Qt все заголовочники, этот кустарный метод хоть и сработает но это сами понимаете что так не должно быть, Qt не хочет с системы подхватывать заголовочники.
Как решить эту проблему?
Re: Qt не видит заголовочники стандартных либ
В R9 действительно баг есть. Проверил на свежеустановленной системе.
Re: Qt не видит заголовочники стандартных либ
А напишите точный порядок воспроизведения ошибки. Программы-то в репозиториях как-то собрались, значит компилятор все нашел.
Re: Qt не видит заголовочники стандартных либ
Речь идет не про компилятор, а про IDE (qt-creator). IDE не видит системных заголовочных файлов, например iostream.keleg писал(а):А напишите точный порядок воспроизведения ошибки. Программы-то в репозиториях как-то собрались, значит компилятор все нашел.
Воспроизвести просто. Объявите любую системную библиотеку (не Qt, а из C++) и посмотрите как IDE себя поведет. Будет ли она давать подсказки из этого файла?
Ну или как на скриншете, наберите "#include <" после чего выйдет список всех видимых для IDE библиотек, и попробуйте там найти тот же iostream.
Сравните результаты с IDE которая была в R8.1 (возможно на чистом R8.1 такой же баг, так что лучше на R7)
Еще раз обращаю внимание, что речь идет только о IDE. В при самой сборке все include подключаются корректно. Точнее, на том примере что я тестировал. Пока, к сожалению, R9 не пользуюсь, не могу точно сказать где еще проявляется баги, я только пытаюсь помочь автору этого топика. Ну и конечно же мне это тоже в последствии скажется.
- VictorR2007
- Сообщения: 7718
- Зарегистрирован: 12 сен 2011, 13:00
Re: Qt не видит заголовочники стандартных либ
А вы этот устанавливали?
http://abf-downloads.rosalinux.ru/rosa2 ... n/release/
http://abf-downloads.rosalinux.ru/rosa2 ... n/release/
-
- Сообщения: 82
- Зарегистрирован: 25 июл 2016, 13:40
Re: Qt не видит заголовочники стандартных либ
У меня на R9 та же проблема (все предложенные VictorR2007 пакеты установлены), но как-то не придал значения, ведь всё компилируется, а стандартные "либы" использую не так уж и часто. Не знаю, может разработчикам поможет - такая же проблема проявляется и на предыдущих версиях "росы", если устанавливать Qt не из репозитория, а с оф. сайта Qt. Тогда тоже - Qt не видит стандартные "либы", но всё компилируется. Хотя пути к компиляторам и анализатору IDE находит без проблем.
Re: Qt не видит заголовочники стандартных либ
Лично у меня часто. Я Qt-Creator использую как редактор C++. Не важно на Qt проект или нет. Ставил из официального репозитория.crasher332 писал(а):У меня на R9 та же проблема (все предложенные VictorR2007 пакеты установлены), но как-то не придал значения, ведь всё компилируется, а стандартные "либы" использую не так уж и часто. Не знаю, может разработчикам поможет - такая же проблема проявляется и на предыдущих версиях "росы", если устанавливать Qt не из репозитория, а с оф. сайта Qt. Тогда тоже - Qt не видит стандартные "либы", но всё компилируется. Хотя пути к компиляторам и анализатору IDE находит без проблем.
Re: Qt не видит заголовочники стандартных либ
Наивный вопрос - а компилер c++ -то установлен? А то в комплекте его нету.
-
- Сообщения: 82
- Зарегистрирован: 25 июл 2016, 13:40
Re: Qt не видит заголовочники стандартных либ
Установлены gcc, g++, clang, clang++ (соответственно пакеты: gcc, gcc-c++, gcc-cpp, clang, ну и "либы" к ним). Может ещё что нужно поставить?keleg писал(а):Наивный вопрос - а компилер c++ -то установлен? А то в комплекте его нету.
Re: Qt не видит заголовочники стандартных либ
Получается, что Qt Creator берёт для подстановки заголовочные файлы, которые находит в путях INCLUDEPATH. И если прописать в проекте (*.pro)
то будут подставляться все заголовки из /usr/include. Но некоторые стандартные заголовки лежат в /usr/include/c++/5.3.1/ (которые из libstdc++-devel), так что одного /usr/include мало.
Не знаю даже, баг это или фича, подставлять по умолчанию только Qt-заголовки. Но может получится разобраться и сделать так, чтобы подставлял всё стандартное по умолчанию.
Код: Выделить всё
INCLUDEPATH+=/usr/include
Не знаю даже, баг это или фича, подставлять по умолчанию только Qt-заголовки. Но может получится разобраться и сделать так, чтобы подставлял всё стандартное по умолчанию.
Intel Core i7-6700 / 8 Gb RAM / GeForce GTX 750 Ti / Rosa 2016.1 i586
Re: Qt не видит заголовочники стандартных либ
Вот так QT Creator ищет пути заголовков:
как я понял, вызывается gcc со следующими параматрами, и получается:
При этом в выдаче строка "Конец списка поиска." а ожидается "End of search list." Но это не беда.
А вот что значит line.startsWith("#include") ?
у нас ведь срока начинается с текста "порядок поиска для" — может потому и не находит /usr/include/c++/5.3.1/?
Код: Выделить всё
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 -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
Конец списка поиска.
А вот что значит line.startsWith("#include") ?
у нас ведь срока начинается с текста "порядок поиска для" — может потому и не находит /usr/include/c++/5.3.1/?
Re: Qt не видит заголовочники стандартных либ
Всё так и оказалось, дело в локализации. Если запускать "LC_ALL=C qtcreator", то пути заголовков правильно определяются. Сейчас сделаем патчик... Спасибо за наводкуtrs писал(а):При этом в выдаче строка "Конец списка поиска." а ожидается "End of search list." Но это не беда.
А вот что значит line.startsWith("#include") ?
у нас ведь срока начинается с текаста "порядок поиска для" — может потому и не находит /usr/include/c++/5.3.1/?

Intel Core i7-6700 / 8 Gb RAM / GeForce GTX 750 Ti / Rosa 2016.1 i586
Re: Qt не видит заголовочники стандартных либ
Тьфу, а я с LC_LANG=C запускал 

Re: Qt не видит заголовочники стандартных либ
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
-
- Сообщения: 82
- Зарегистрирован: 25 июл 2016, 13:40
Re: Qt не видит заголовочники стандартных либ
Спасибо! Обновил - всё работает.Pulfer писал(а):Qt Creator 4.2.2 сегодня ушёл в обновления в репозитории для rosa2014.1 и rosa2016.1. Там исправлена и эта, и ещё ряд ошибок (file.file при запуске, некоторые рекомендованные зависимости и т.д.).
Re: Qt не видит заголовочники стандартных либ
Проблема как была так и осталась на Qt с офф сайта. Подскажите, къют который в репозитории РОСЫ имеет данную проблему?
===========
вот прям свежачек с офф сайта, вот не видит на РОСЕ Qt стандартные(системные) шляпы, только свои которые в комплекте шли: (ни при наборе не при ctrl+space)
Быть может как-то можно заставить Qt с офф сайта научить все это видеть(желательно без костылей)?
===========
вот прям свежачек с офф сайта, вот не видит на РОСЕ Qt стандартные(системные) шляпы, только свои которые в комплекте шли: (ни при наборе не при ctrl+space)
Быть может как-то можно заставить Qt с офф сайта научить все это видеть(желательно без костылей)?
Re: Qt не видит заголовочники стандартных либ
Попробуйте запустить так
Код: Выделить всё
LC_ALL=C qtcreator
Re: Qt не видит заголовочники стандартных либ
Шикарно, божественный запуск. Теперь работает.
Re: Qt не видит заголовочники стандартных либ
В репах мы эту проблему тоже решили.Satana_00 писал(а):Шикарно, божественный запуск. Теперь работает.