Автор Тема: Добавяне и използване на библиотеки в Qt Creator  (Прочетена 5346 пъти)

staco

  • Напреднали
  • *****
  • Публикации: 72
  • Distribution: Ubuntu, Debian
  • Window Manager: Gnome
    • Профил
Здравейте на всички ! :)

Преди няколко дена се реших най-сетне да почна да програмирам И на C++ и съответно си записах Qt Creator. nice :)
Но срещам трудност.. проблем. Може би е доста глупав въпрос, но тъй като сега навлизам в c++ съм малко невеж и моля да бъда извинен !

Някой би ли ми обяснил как мога да си ползвам c++ библиотеките ?
Защото още при самото инклудване на iostream, qt creator-а ми подчертава реда и съобщава за грешка (файла/директорията не е намерена)

Предполагам че библиотеките (а и предполагам още нещо важно) допълнително се инсталират, тъй като липсват в /opt/qtsdk-2009.03
PS: Ползвам Ubuntu 9.04

Благодаря предварително на отзовалите се !
« Последна редакция: Aug 30, 2009, 13:29 от staco »
Активен

bop_bop_mara

  • Напреднали
  • *****
  • Публикации: 2433
  • Distribution: Debian Testing
  • Window Manager: LXDE
  • Cute and cuddly
    • Профил
Инсталирал ли си компилатор? Той по принцип не идва с базовата инсталация... Ако не си, най-добре инсталирай build-essential пакета, той ще ти сложи горе-долу всичко необходимо, за да си компилираш както твоите неща, така и програми от сорс.
Активен

lkr

  • Напреднали
  • *****
  • Публикации: 81
    • Профил
А ти пробва ли да компилираш изобщо? Това че ти го подчертава нищо не значи, не случайно името е Qt-creator, а не C++ creator.Ако ще пишеш на Qt iostream не ти трябва.
Активен

staco

  • Напреднали
  • *****
  • Публикации: 72
  • Distribution: Ubuntu, Debian
  • Window Manager: Gnome
    • Профил
Значиии до една степен се оправих с помоща на @bop_bop_mara.
Инсталирах го пакета, появиха се библиотеките, компилатора.. всичко е шест.

Но има проблем с qt creator-а.
До скоро излизаше следната грешка, като исках да го компилирам от qt-creator:
Цитат
No valid Qt version set. Set one in Tools/Options
Error while building project calculator
When executing build step 'QMake'
Canceled build.
тъй.. оправих го, като му посочих инсталационната директория.
Разпозна си версията, всичко тип-топ.

Но сега излиза:
:-1: error: collect2: ld returned 1 exit status

Програмата е елементарно проста:
Цитат
#include <iostream>

using namespace std;

int main ()
{
    cout << "Kalkulator output \n";
    return 0;
}

Библиотеката си я намира (защото не вика вече, че няма такъв файл)
Даже в .pro файла съм описал пътя: INCLUDEPATH += /usr/include/c++/4.3

Какъв е проблема ?

А иначе като отворя терминала и напиша: c++ programata.cpp -o izhod.exe се компилира без проблеми.. стартира се.. работи !


#редакция:
Не ми направи впечатление че има скрол и сътоветно целия дебъг е:
Цитат
Running build steps for project calculator...
Configuration unchanged, skipping QMake step.
Starting: /usr/bin/make -w
make: Entering directory `/home/stefan/Desktop/cpp/calculator'
g++ -c -pipe -g -Wall -W -D_REENTRANT -DQT_GUI_LIB -DQT_CORE_LIB -DQT_SHARED -I/opt/qtsdk-2009.03/qt/mkspecs/linux-g++ -I. -I/opt/qtsdk-2009.03/qt/include/QtCore -I/opt/qtsdk-2009.03/qt/include/QtGui -I/opt/qtsdk-2009.03/qt/include -I/usr/include/c++/4.3 -I. -o calc.o calc.cpp
g++ -Wl,-rpath,/opt/qtsdk-2009.03/qt/lib -o calculator calc.o -L/opt/qtsdk-2009.03/qt/lib -lQtGui -L/opt/qtsdk-2009.03/qt/lib -L/usr/X11R6/lib -pthread -lfreetype -lgobject-2.0 -lSM -lICE -pthread -pthread -lXrender -lfontconfig -lXext -lX11 -lQtCore -lm -pthread -lgthread-2.0 -lrt -lglib-2.0 -ldl -lpthread
/usr/bin/ld: cannot find -lfreetype
collect2: ld returned 1 exit status
make: *** [calculator] Error 1
make: Leaving directory `/home/stefan/Desktop/cpp/calculator'
Exited with code 2.
Error while building project calculator
When executing build step 'Make'

Tака като гледам, проблемите почват след: /usr/bin/ld: cannot find -lfreetype
Бъркам ли се или трябва да инсталирам: libfreetype6-dev ?

#редакция:
ех докато си редактирам мнението и ме изпревари.
Сега ще го метна: libfreetype6-dev, иначе другия пакет си го имам.  ;)
« Последна редакция: Aug 30, 2009, 14:57 от staco »
Активен

lkr

  • Напреднали
  • *****
  • Публикации: 81
    • Профил
sudo apt-get install libfreetype6 libfreetype6-dev
Активен

bop_bop_mara

  • Напреднали
  • *****
  • Публикации: 2433
  • Distribution: Debian Testing
  • Window Manager: LXDE
  • Cute and cuddly
    • Профил
Ти на какво се учиш да програмираш - на C++ или на Qt?
Изглежда ми като че ли сигурно някоя qt библиотека ти липсва.. Инсталирани ли са ти qt4-dev-tools (или там за която версия на qt ще ползваш)? Сложи си и qt4-qmake, ако нямаш,  сигурно ще потрябва.
//offtopic
Под Линукс разширението .exe на изпълнимите файлове първо е ненужно, второ е малко грозничко.
Код
GeSHi (Bash):
  1. g++ -o file file.c
е напълно достатъчно.
« Последна редакция: Aug 30, 2009, 15:00 от bop_bop_mara »
Активен

staco

  • Напреднали
  • *****
  • Публикации: 72
  • Distribution: Ubuntu, Debian
  • Window Manager: Gnome
    • Профил
Ти на какво се учиш да програмираш - на C++ или на Qt?
Изглежда ми като че ли сигурно някоя qt библиотека ти липсва.. Инсталирани ли са ти qt4-dev-tools (или там за която версия на qt ще ползваш)? Сложи си и qt4-qmake, ако нямаш,  сигурно ще потрябва.
//offtopic
Под Линукс разширението .exe на изпълнимите файлове първо е ненужно, второ е малко грозничко.
Код
GeSHi (Bash):
  1. g++ -o file file.c
е напълно достатъчно.

Maй така ще си карам..че да не инсталирам допълнителни работи.

Сега излиза:
Цитат
Running build steps for project calculator...
Configuration unchanged, skipping QMake step.
Starting: /usr/bin/make -w
make: Entering directory `/home/stefan/Desktop/cpp/calculator'
g++ -Wl,-rpath,/opt/qtsdk-2009.03/qt/lib -o calculator calc.o -L/opt/qtsdk-2009.03/qt/lib -lQtGui -L/opt/qtsdk-2009.03/qt/lib -L/usr/X11R6/lib -pthread -lfreetype -lgobject-2.0 -lSM -lICE -pthread -pthread -lXrender -lfontconfig -lXext -lX11 -lQtCore -lm -pthread -lgthread-2.0 -lrt -lglib-2.0 -ldl -lpthread
/usr/bin/ld: cannot find -lgobject-2.0
collect2: ld returned 1 exit status
make: Leaving directory `/home/stefan/Desktop/cpp/calculator'
make: *** [calculator] Error 1
Exited with code 2.
Error while building project calculator
When executing build step 'Make'

Макар че щеше да ми е по-удобно ако помпих f5 докато чатъркам, ама нищо. Само се надявам после да нямам проблеми като ще ми се наложи да правя gui за програмката.

Иначе за сега на c++ чатъркам.
Поставил съм си една задача да направя и искам да я осъществя.. Пък по-късно ще разуча и как се прави самия GUI.

Относно .exe-то прав си напълно, но просто по навик съм си го написал.
От 2 месеца ползвам линукс и явно още уиндоуса ми е в главата, но се свиква :)
« Последна редакция: Aug 30, 2009, 15:07 от staco »
Активен

bop_bop_mara

  • Напреднали
  • *****
  • Публикации: 2433
  • Distribution: Debian Testing
  • Window Manager: LXDE
  • Cute and cuddly
    • Профил
Щом се учиш на C++ зарежи го този Qt Creator. Той е за графични приложения. Имаш да учиш прекалено много за езика, докато стигнеш дo GUI библиотеките, написани за него. Ако си търсиш IDE за него, има Code::Blocks, KDevelop и още един куп, сигурно има теми във форума по този въпрос. Аз лично по-далеч от текстов едитор с оцветяване не стигам от доста време. Мога да ти препоръчам vim (vim-full), в началото изглежда много извънземен, неудобен и примитивен, но конфигуриран като хората е едно от най-мощните средства за бързо и удобно писане на код.
Активен

staco

  • Напреднали
  • *****
  • Публикации: 72
  • Distribution: Ubuntu, Debian
  • Window Manager: Gnome
    • Профил
Прав си и аз не използвам разни подобни джунджурийки, когато програмирам уеб приложения, но понеже реших че някой ден ще ми притрябва gui, хем ми харесаха функциите, хем и вида на прорамката ии така реших да си я запиша. Иначе не ми пречи да си ползвам gedit и да компилирам от терминала.

Благодаря още веднъж за помоща, смятам темата вече за приключена ! :)

A за хората, които искат да оправят проблемите, които аз имах, трябва да изпълнят следните команди:
sudo apt-get install libfreetype6-dev
sudo apt-get install libavahi-gobject-dev
sudo apt-get install libSM-dev
sudo apt-get install libXrender-dev
sudo apt-get install libfontconfig-dev
sudo apt-get install libXext-dev

viva la google ;D
Активен

dvasilev

  • Напреднали
  • *****
  • Публикации: 200
  • Distribution: Kubuntu, Debian
  • Window Manager: KDE
    • Профил
    • WWW
@staco: Със сигурност имаш проблем със системата си. Най-малкото не си инсталирал правилно qt иначе, нямаше да ти липсват тези пакети, дето си ги инсталирал допълнително. При компилиране компилаторът се мъчи на link-не нещата към библиотеки, които по принцип не са ти нужни. В тази ситуация на мен не ми е ясно дали си оплескал нещо в pro файла или в конфигурацията на qt. Но като се има предвид, че се налага да указваш къде са header-ите на gcc, то най-вероятно е второто. Освен това в ubuntu има пакети както за qt,така и за qtcreator и никой от тях не си слага нещата в /opt директорията. Вярно, че със стандартния пакет, няма да си с последната версия на qtcreator, но като гледам, поне за момента няма и да ти трябва.

И последното нещо, на което искам да ти обърна внимание. Ако ще пишеш конзолни приложения в pro файла добави QT -= gui
Активен

staco

  • Напреднали
  • *****
  • Публикации: 72
  • Distribution: Ubuntu, Debian
  • Window Manager: Gnome
    • Профил
@staco: Със сигурност имаш проблем със системата си. Най-малкото не си инсталирал правилно qt иначе, нямаше да ти липсват тези пакети, дето си ги инсталирал допълнително. При компилиране компилаторът се мъчи на link-не нещата към библиотеки, които по принцип не са ти нужни. В тази ситуация на мен не ми е ясно дали си оплескал нещо в pro файла или в конфигурацията на qt. Но като се има предвид, че се налага да указваш къде са header-ите на gcc, то най-вероятно е второто. Освен това в ubuntu има пакети както за qt,така и за qtcreator и никой от тях не си слага нещата в /opt директорията. Вярно, че със стандартния пакет, няма да си с последната версия на qtcreator, но като гледам, поне за момента няма и да ти трябва.

И последното нещо, на което искам да ти обърна внимание. Ако ще пишеш конзолни приложения в pro файла добави QT -= gui

Здравей,
Инсталацията премина гладко без грешки.. всичко точно. Просто нужните пакети не се качиха, защото програмата я дръпнах от сайта а не от package manager-а (за да ми качи и нещата, от които се нуждае)
Всичко си работи :)

Можеш ли да кажеш каква е причината да се добавя QT -= gui в проджект файла ?
Защото като гледам не прави проблеми и да го няма ?
Активен

dvasilev

  • Напреднали
  • *****
  • Публикации: 200
  • Distribution: Kubuntu, Debian
  • Window Manager: KDE
    • Профил
    • WWW
@staco: По-скоро имаш проблем, който се е проявил по някакъв начин, справил си се със симптомите, но не си го решил.

По отношение на въпроса ти, по този начин програма не се link-ва към библиотеките на X server-а и може да се стартира от най-обикновена конзола. В другия случай ще  се наложи да имаш стартирана графична среда, за да ти тръгне програмата.
Активен

staco

  • Напреднали
  • *****
  • Публикации: 72
  • Distribution: Ubuntu, Debian
  • Window Manager: Gnome
    • Профил
@staco: По-скоро имаш проблем, който се е проявил по някакъв начин, справил си се със симптомите, но не си го решил.

По отношение на въпроса ти, по този начин програма не се link-ва към библиотеките на X server-а и може да се стартира от най-обикновена конзола. В другия случай ще  се наложи да имаш стартирана графична среда, за да ти тръгне програмата.

Аха, ясно. Благодаря много за информацията. ;)
Междувпрочем за да работи програмката и под уиндоус, задължително ли е да я компилирам под въпросната ос ?
Предполагам да, но все пак да попитам.

Оносно проблема, за който става въпрос - защо да не съм го решил ?
Какво друго има пропуснато ? Вече при дебъгване не излизат грешки.

Поздрави
« Последна редакция: Aug 30, 2009, 23:21 от staco »
Активен

v_badev

  • Напреднали
  • *****
  • Публикации: 1355
    • Профил
Може да успееш да компилираш програма за windows под Linux с крос компилатор - нещо като това. Някои проекти така си компилират версията за Windows, но най-лесно ще стане ако може да го направиш под реаланта операционна система.
Активен

staco

  • Напреднали
  • *****
  • Публикации: 72
  • Distribution: Ubuntu, Debian
  • Window Manager: Gnome
    • Профил
мхм, и аз така мисля .. най-добре под съответната os да се компилира  :)
Благодаря !  ;)
Активен

Подобни теми
Заглавие Започната от Отговора Прегледи Последна публикация
Fedora и LiveUSB Creator проблем
Настройка на програми
s7ar 5 3185 Последна публикация Apr 27, 2009, 17:39
от mishot
Инструмент за записване на ISO върху USB FLASH (Calculate USB Creator 0.1)
Общ форум
AMD 52 20697 Последна публикация Mar 07, 2012, 17:12
от bop_bop_mara