Форум русскоязычного сообщества Ubuntu


Увидели сообщение с непонятной ссылкой, спам, непристойность или оскорбление?
Воспользуйтесь ссылкой «Сообщить модератору» рядом с сообщением!

Автор Тема: Компилятор GCC не видит заголовочные файлы библиотек QT  (Прочитано 15800 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Aeooe

  • Автор темы
  • Участник
  • *
  • Сообщений: 158
    • Просмотр профиля
    • Компания БИТ
Использую ОС Xubuntu 12.04.
gcc (Ubuntu/Linaro 4.6.3-1ubuntu5) 4.6.3
qt 4.8.4

Собственно пытаюсь скомпилить первую программу на библиотеках qt

#include <QApplication>
#include <QTextEdit>

int main(int argv, char **args)
{
QApplication app(argv, args);

QTextEdit textEdit;
textEdit.show();

return app.exec();
}

Цитировать
andrey@Andrey:~/workspace/prob$ gcc helloworld.c
helloworld.c:1:24: фатальная ошибка: QApplication: Нет такого файла или каталога
компиляция прервана.
И собственно вот такая ошибка. По поисковикам лазил - не нашел как подцепить каталог к компилятору для поиска. Каталог находиться в /usr/local/Trolltech/Qt-4.8.4/include/

Я так понимаю что компилятор не видит нужный каталог с библиотеками, который находится в: /usr/local/Trolltech/Qt-4.8.4/include

Пробую через gcc helloworld.c -I /usr/local/Trolltech/Qt-4.8.4/include но таже самая ошибка.

Подскажите  :)

Оффлайн aSmile

  • Активист
  • *
  • Сообщений: 755
    • Просмотр профиля
Используй g++ вместо gcc.

-I - где искать заголовочные файлы (большая "i")
-L - где искать библиотеки
-l - какие библиотеки линковать (маленькая "L")
-I/usr/local/Trolltech/Qt-4.8.4/include -L/usr/local/Trolltech/Qt-4.8.4/lib -lQtCore -lQtGuiПримерно так (пути могут быть другими).

А вообще, создавай файл проекта .pro и используй qmake.
http://doc.qt.digia.com/qt/qmake-tutorial.html
« Последнее редактирование: 03 Декабря 2012, 22:46:39 от aSmile »

Оффлайн SergeyIT

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 5720
  • Все по палатам!
    • Просмотр профиля
Может проще поставить QtCreator?
Извините, я все еще учусь

Оффлайн Aeooe

  • Автор темы
  • Участник
  • *
  • Сообщений: 158
    • Просмотр профиля
    • Компания БИТ
Используй g++ вместо gcc.

-I - где искать заголовочные файлы (большая "i")
-L - где искать библиотеки
-l - какие библиотеки линковать (маленькая "L")
-I/usr/local/Trolltech/Qt-4.8.4/include -L/usr/local/Trolltech/Qt-4.8.4/lib -lQtCore -lQtGuiПримерно так (пути могут быть другими).

А вообще, создавай файл проекта .pro и используй qmake.
http://doc.qt.digia.com/qt/qmake-tutorial.html

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

Оффлайн aSmile

  • Активист
  • *
  • Сообщений: 755
    • Просмотр профиля
Может проще поставить QtCreator?
Намного :)

Хотя, когда я первый раз открыл IDE (не помню точно какую), и посмотрел на эту тучу опций, я ничего не понял, и у меня ничего не получилось. И только когда ручками начал компилировать и писать Makefile'ы, понял для чего все эти опции и как их использовать.

Оффлайн Yurror

  • Старожил
  • *
  • Сообщений: 1966
    • Просмотр профиля
Aeooe,
ну и в догонку, не издевайся над компилятором. переименуй .с в .срр

Оффлайн Aeooe

  • Автор темы
  • Участник
  • *
  • Сообщений: 158
    • Просмотр профиля
    • Компания БИТ
Может проще поставить QtCreator?
Намного :)

Хотя, когда я первый раз открыл IDE (не помню точно какую), и посмотрел на эту тучу опций, я ничего не понял, и у меня ничего не получилось. И только когда ручками начал компилировать и писать Makefile'ы, понял для чего все эти опции и как их использовать.
Что то не выходит.
g++ main.cpp -I /usr/local/Trolltech/Qt-4.8.4/include
main.cpp:1:24: фатальная ошибка: QApplication: Нет такого файла или каталога
компиляция прервана.
Компилятор не видит почему то файлы дальше указанного каталога. Т.е. если указать каталог - /usr/local/Trolltech/Qt-4.8.4/include/QtGui/ то:
g++ main.cpp -I /usr/local/Trolltech/Qt-4.8.4/include/QtGui/
In file included from /usr/local/Trolltech/Qt-4.8.4/include/QtGui/QApplication:1:0,
                 from main.cpp:1:
/usr/local/Trolltech/Qt-4.8.4/include/QtGui/qapplication.h:45:37: фатальная ошибка: QtCore/qcoreapplication.h: Нет такого файла или каталога
компиляция прервана.

Ну это собственно и понятно. Непонятно дургое, как прописать корневой каталог с инклудами? qmake пока не рассматриваю.

Пользователь решил продолжить мысль 04 Декабря 2012, 16:54:50:
Поделитесь пожалуйсте работающий простой пример компиляции только при помощи компилятора g++ с использованием библиотек QT
« Последнее редактирование: 04 Декабря 2012, 16:54:50 от Aeooe »

Оффлайн aSmile

  • Активист
  • *
  • Сообщений: 755
    • Просмотр профиля
1. Не надо пробела после -I
2. Взял твой код в файл qt_example.cpp, собрал его командой
g++ -I$QTDIR/include/QtGui -I$QTDIR/include/QtCore -I$QTDIR/include -L$QTDIR/lib qt_example.cpp -lQtGui -lQtCore
Выставив предварительно переменную окружения QTDIR

Оффлайн hippi90

  • Активист
  • *
  • Сообщений: 433
    • Просмотр профиля
Может проще поставить QtCreator?
Не обязательно ставить IDE, в SDK уже входит qmake, который сделает всю работу.

Оффлайн Aeooe

  • Автор темы
  • Участник
  • *
  • Сообщений: 158
    • Просмотр профиля
    • Компания БИТ
1. Не надо пробела после -I
2. Взял твой код в файл qt_example.cpp, собрал его командой
g++ -I$QTDIR/include/QtGui -I$QTDIR/include/QtCore -I$QTDIR/include -L$QTDIR/lib qt_example.cpp -lQtGui -lQtCore
Выставив предварительно переменную окружения QTDIR
Мужжжжиииик Вроде всосал :)

Оффлайн aSmile

  • Активист
  • *
  • Сообщений: 755
    • Просмотр профиля
Чтобы не писать каждый раз такую строку, сделай Makefile. Например, http://paste.ubuntu.com/1410243/

Но ведь намного проще сделать такой .pro файл и не париться со всем этим, а делать qmake && make

Оффлайн Aeooe

  • Автор темы
  • Участник
  • *
  • Сообщений: 158
    • Просмотр профиля
    • Компания БИТ
Компилировать научился. Теперь другая проблема возникла. Поставил библиотеки Qt на другую машину, ОС такая-же. Пытаюсь запустить скомпилированный файл и ругается на отсутсвие библиотек:
Цитировать
andrey@Andrey:~/workspace/Email sender$ ./main
./main: error while loading shared libraries: libQtCore.so.4: cannot open shared object file: No such file or directory

Причем в каталоге /usr/local/Trolltech/Qt-4.8.4/lib/ подозрительные файлы-ссылки вместо библиотек.

Оффлайн Чистый

  • Почётный модератор
  • Старожил
  • *
  • Сообщений: 3473
  • nix - вот оно счастье...
    • Просмотр профиля
так либы должны лежать в /usr/lib или /usr/local/lib
Тестовый репозиторий kdeNeur ppa:devcode/kdeneur
各々が死ぬことをどのように決定する

Оффлайн saymon21root

  • Участник
  • *
  • Сообщений: 166
    • Просмотр профиля
    • https://saymon21-root.pro
Ар. Я помню в 12.4 был вообще какой-то баг с компилянием чего либо. gcc вообще не мог ничего взять, что нужно для сборки.

Оффлайн aSmile

  • Активист
  • *
  • Сообщений: 755
    • Просмотр профиля
Цитировать
andrey@Andrey:~/workspace/Email sender$ ./main
./main: error while loading shared libraries: libQtCore.so.4: cannot open shared object file: No such file or directory
Причем в каталоге /usr/local/Trolltech/Qt-4.8.4/lib/ подозрительные файлы-ссылки вместо библиотек.

Попробуй в переменную окружения LD_LIBRARY_PATH добавить этот путь.
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/Trolltech/Qt-4.8.4/lib/

P.S. Т.к. это уже другая проблема, то лучше создавать новую тему.

 

Страница сгенерирована за 0.076 секунд. Запросов: 25.