qmake και C++ και QT

...IDE, compilers, κλπ

Συντονιστής: konnn

qmake και C++ και QT

Δημοσίευσηαπό malos » 08 Αύγ 2009, 20:28

Καλησπέρα παίδες !
Βρήκα ένα Hello world σε C++ . Το άλλαξα λίγο για να έχω βάλει κάτι δικό μου και να καταννοώ πράγματα σιγά σιγά.
Ο κώδικάς του είναι :
Κώδικας: Επιλογή όλων
#include <QApplication>
#include <QLabel>
#include <QPushButton>
#include <QVBoxLayout>
#include <QLineEdit>

int main(int argc, char *argv[]) {
QApplication app(argc, argv);

QWidget *window = new QWidget();
QVBoxLayout *layout = new QVBoxLayout();
QLabel *label = new QLabel("H TAMPELLA EDO !!!");
QPushButton *button = new QPushButton("KLEISE");

QLineEdit *Edit = new QLineEdit("As grapso kai do kati");
QObject::connect(button, SIGNAL(clicked()), &app, SLOT(quit()));

layout->addWidget(label);
layout->addWidget(button);
layout->addWidget(Edit);

window->setLayout(layout);

window->show();
return app.exec();
}


Αυτό που πρόσθεσα είναι το Line Edit και το ονόμασα Edit πιο κάτω και χάρηκα που το όρισα σωστά (έβαλα και τη γραμμή layout->addWidget(Edit); και μου δούλεψε.
Δόυλεψε όμως στην Ultimate 2.2 . Έδωσα από τερματικό : qmake -project και έφτιαξε αρχείο .pro, μετά έδωσα qmake και έφτιαξε το Makefile και μετά make και έφτιαξε το εκτελέσιμο όπου με κλικ άνοιξε κανονικά το παραθυράκι.
Στην κανονική όμως ubuntu 9.04 το make μου έβγαζε error. Μήπως λείπουν πακέτα ; Ή τι άλλο μπορεί να συμβαίνει ;
Τελευταία επεξεργασία από Nisok και 10 Αύγ 2009, 00:55, έχει επεξεργασθεί 1 φορά/ες συνολικά
Αιτία: Διόρθωσα τον τίτλο
Επεξεργαστής: AMD Ryzen 9 5900x
Μνήμη Gskill 16gb (2X8gb), 3200 mh, CL 14
Μητρική: Asrock X570 phantom gaming X
Τροφοδοτικό: Corsair 850 platinum
Δίσκος: SSD Corsair MP600 (1 TB)
Άβαταρ μέλους
malos
saintTUX
saintTUX
 
Δημοσιεύσεις: 1251
Εγγραφή: 02 Νοέμ 2008, 12:00
Εκτύπωση

Re: make και C++

Δημοσίευσηαπό malos » 08 Αύγ 2009, 20:39

Αυτό μου βγάζει

Κώδικας: Επιλογή όλων
pal@malos:~/Επιφάνεια εργασίας/ss$ make

g++ -c -pipe -g -Wall -W -O2 -D_REENTRANT -DQT_NO_DEBUG -DQT_THREAD_SUPPORT -I/usr/share/qt3/mkspecs/default -I. -I. -I/usr/share/qt3/include -o hello.o hello.cpp
hello.cpp:1:24: error: QApplication: No such file or directory
hello.cpp:2:18: error: QLabel: No such file or directory
hello.cpp:3:23: error: QPushButton: No such file or directory
hello.cpp:4:23: error: QVBoxLayout: No such file or directory
hello.cpp:5:21: error: QLineEdit: No such file or directory
hello.cpp: In function ‘int main(int, char**)’:
hello.cpp:8: σφάλμα: ‘QApplication’ was not declared in this scope
hello.cpp:8: σφάλμα: expected `;' before ‘app’
hello.cpp:10: σφάλμα: ‘QWidget’ was not declared in this scope
hello.cpp:10: σφάλμα: ‘window’ was not declared in this scope
hello.cpp:10: σφάλμα: expected type-specifier before ‘QWidget’
hello.cpp:10: σφάλμα: expected `;' before ‘QWidget’
hello.cpp:11: σφάλμα: ‘QVBoxLayout’ was not declared in this scope
hello.cpp:11: σφάλμα: ‘layout’ was not declared in this scope
hello.cpp:11: σφάλμα: expected type-specifier before ‘QVBoxLayout’
hello.cpp:11: σφάλμα: expected `;' before ‘QVBoxLayout’
hello.cpp:12: σφάλμα: ‘QLabel’ was not declared in this scope
hello.cpp:12: σφάλμα: ‘label’ was not declared in this scope
hello.cpp:12: σφάλμα: expected type-specifier before ‘QLabel’
hello.cpp:12: σφάλμα: expected `;' before ‘QLabel’
hello.cpp:13: σφάλμα: ‘QPushButton’ was not declared in this scope
hello.cpp:13: σφάλμα: ‘button’ was not declared in this scope
hello.cpp:13: σφάλμα: expected type-specifier before ‘QPushButton’
hello.cpp:13: σφάλμα: expected `;' before ‘QPushButton’
hello.cpp:15: σφάλμα: ‘QLineEdit’ was not declared in this scope
hello.cpp:15: σφάλμα: ‘Edit’ was not declared in this scope
hello.cpp:15: σφάλμα: expected type-specifier before ‘QLineEdit’
hello.cpp:15: σφάλμα: expected `;' before ‘QLineEdit’
hello.cpp:16: σφάλμα: ‘QObject’ has not been declared
hello.cpp:16: σφάλμα: ‘clicked’ was not declared in this scope
hello.cpp:16: σφάλμα: ‘SIGNAL’ was not declared in this scope
hello.cpp:16: σφάλμα: ‘app’ was not declared in this scope
hello.cpp:16: σφάλμα: ‘quit’ was not declared in this scope
hello.cpp:16: σφάλμα: ‘SLOT’ was not declared in this scope
hello.cpp: At global scope:
hello.cpp:7: προειδοποίηση: unused parameter ‘argc’
hello.cpp:7: προειδοποίηση: unused parameter ‘argv’
make: *** [hello.o] Error 1
pal@malos:~/Επιφάνεια εργασίας/ss$
Επεξεργαστής: AMD Ryzen 9 5900x
Μνήμη Gskill 16gb (2X8gb), 3200 mh, CL 14
Μητρική: Asrock X570 phantom gaming X
Τροφοδοτικό: Corsair 850 platinum
Δίσκος: SSD Corsair MP600 (1 TB)
Άβαταρ μέλους
malos
saintTUX
saintTUX
 
Δημοσιεύσεις: 1251
Εγγραφή: 02 Νοέμ 2008, 12:00
Εκτύπωση

Re: make και C++

Δημοσίευσηαπό malos » 08 Αύγ 2009, 20:45

Σύγκρινα και τα δύο Makefile με το meld ( Πολύ καλό το meld ! ) . Μεγάλη διαφορά. Πολλές γραμμές διαφορετικές.
Σκέφτηκα να τρέξω το Makefile που φτιαχνόνταν στην ultimate ( Αφού εκεί καλά πήγαν τα πράγματα ) . Το αντέγραψα εδώ στην κανονική και ευτυχώς έχω το ίδιο όνομα φακέλου και στις δυό ~/Επιφάνειες Εργασίας. (Γιατί είδα μέσα στο Makefile ότι αναφέρεται το όνομα του τρέχοντος φακέλου. Έδωσα make και πάλι λάθη έδινε .
Επεξεργαστής: AMD Ryzen 9 5900x
Μνήμη Gskill 16gb (2X8gb), 3200 mh, CL 14
Μητρική: Asrock X570 phantom gaming X
Τροφοδοτικό: Corsair 850 platinum
Δίσκος: SSD Corsair MP600 (1 TB)
Άβαταρ μέλους
malos
saintTUX
saintTUX
 
Δημοσιεύσεις: 1251
Εγγραφή: 02 Νοέμ 2008, 12:00
Εκτύπωση

Re: make και C++

Δημοσίευσηαπό linuxman » 08 Αύγ 2009, 21:29

malos έγραψε:Σύγκρινα και τα δύο Makefile με το meld ( Πολύ καλό το meld ! ) . Μεγάλη διαφορά. Πολλές γραμμές διαφορετικές.
Σκέφτηκα να τρέξω το Makefile που φτιαχνόνταν στην ultimate ( Αφού εκεί καλά πήγαν τα πράγματα ) . Το αντέγραψα εδώ στην κανονική και ευτυχώς έχω το ίδιο όνομα φακέλου και στις δυό ~/Επιφάνειες Εργασίας. (Γιατί είδα μέσα στο Makefile ότι αναφέρεται το όνομα του τρέχοντος φακέλου. Έδωσα make και πάλι λάθη έδινε .

Δεν έχω ιδέα από C++ , άλλα μήπως να αλλάξεις το Επιφάνεια εργασίας σε Desktop και θα είναι οκ ?
Οδηγίες προς Νεοεισερχόμενους
1 Γνώσεις Linux: Πολύ καλό ┃ Προγραμματισμού: Ικανοποιητικό ┃ Αγγλικών: Ικανοποιητικό
2 Linux Mint 17.1 Rebecca 3.13.0-37-generic 64bit (el_GR.UTF-8, X-Cinnamon cinnamon)
3 Intel Core i5-2310M CPU @ 2.10GHz ‖ RAM 3866 MiB ‖ Dell Inc. 0D7C51 - Dell Inc. Dell System Vostro 3750
4 Intel 2nd Generation Core Processor Family Integrated Graphics [8086:0116] {i915}
5 wlan0: Intel Centrino Wireless-N 1030 [Rainbow Peak] [8086:008a] (rev 34) ⋮ eth0: Realtek RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller [10ec:8168] (rev 06)
http://www.greeklug.gr
Άβαταρ μέλους
linuxman
Επίτιμο μέλος
Επίτιμο μέλος
 
Δημοσιεύσεις: 10378
Εγγραφή: 10 Μάιος 2008, 20:41
Τοποθεσία: Thessaloniki / Macedonia / Greece
Εκτύπωση

Re: make και C++

Δημοσίευσηαπό logari81 » 08 Αύγ 2009, 21:34

απότι φαίνεται σου λείπουν καποια -dev πακετα της QT, δεν εχω ασχοληθει με QT για να σου πω ποια ακριβως.
http://opensourceecology.org/


Λειτουργικό: Ubuntu 10.04 lucid 64-bitΠροδιαγραφές: 4x Intel Core i5 CPU M 450 2.40GHz ‖ RAM 3696 MiB ‖ Lenovo KL3 - LENOVO IdeaPad Y560
Κάρτα γραφικών: ATI Device [1002:68c0]Ασύρματο: wlan0: Atheros Inc. AR928X Wireless Network Adapter (PCI-Express) [168c:002a] (rev 01)
logari81
Επίτιμο μέλος
Επίτιμο μέλος
 
Δημοσιεύσεις: 6074
Εγγραφή: 14 Μάιος 2008, 10:40
Εκτύπωση

Re: make και C++

Δημοσίευσηαπό Nisok » 08 Αύγ 2009, 21:39

Πρέπει να χρησιμοποιήσεις την εντολή qmake γιατί όπως λέει ο logari81 είναι βιβλιοθήκες QT.
Άβαταρ μέλους
Nisok
Διαχειριστής
Διαχειριστής
 
Δημοσιεύσεις: 2637
Εγγραφή: 25 Ιαν 2009, 15:00
Τοποθεσία: /home
IRC: nisok
Εκτύπωση

Re: make και C++

Δημοσίευσηαπό malos » 09 Αύγ 2009, 00:26

@linuxman όχι. Στην Ultimate 2.2 έφτιξα το φάκελο ss στο /home/user/Επιφάνεια Εργασίας και δούλεψε καλά.
@logari81 ναι μάλλον. Αλλά μιλάμε .... άνοιξα το synaptic και σαν υστερικός έβαζα ότι έγραφε "qtμπλα-μπλα, libqt, gcc,
G++, και ότι έμοιαζε σχετικό" . (Καλά τα gcc και τέτοια τα είχε εννοείται).
@Nisok έδωσα qmake ! Ή διαδικασία είναι :
1. Γράφεις τον κώδικα όπως τον βλέπεις σε ένα αρχείο και το σώζεις ως .cpp . Π.χ. εγώ το είπα hello.cpp (όπως έλεγε και στις οδηγίες εκείνη η σελίδα.
2. Δίνεις qmake -project και όπως είχα ανοιχτόν τον ναυτίλο σε εκείνο το φάκελο , βλέπω να δημιουργείται ένα αρχείο με όνομα ss.pro (ss είναι το όνομα του φακέλου)
3. Δίνεις μετά σκέτο qmake και σου δημιουργείται (το βλέπεις μπροστά σου) το Makefile
4. Δίνεις make και δημιουργείται το εκτελέσιμο ss.
5. Κάνεις κλικ πάνω του και τρέχει το προγραμματάκι μια χαρά.

Τα ίδια όταν τα έκανα στην οφίσιαλ δεν πέτυχε . Δηλαδή ένω τα πρώτα μου φτιάχναν τα αρχεία που λέω, τα έβλεπα, όταν ήρθε η ώρα του make έδωσε αυτό το κατεβατό που είπα στην αρχή.
Επεξεργαστής: AMD Ryzen 9 5900x
Μνήμη Gskill 16gb (2X8gb), 3200 mh, CL 14
Μητρική: Asrock X570 phantom gaming X
Τροφοδοτικό: Corsair 850 platinum
Δίσκος: SSD Corsair MP600 (1 TB)
Άβαταρ μέλους
malos
saintTUX
saintTUX
 
Δημοσιεύσεις: 1251
Εγγραφή: 02 Νοέμ 2008, 12:00
Εκτύπωση

Re: make και C++

Δημοσίευσηαπό Nisok » 09 Αύγ 2009, 01:48

Τι εννοείς οφίσιαλ??

Ο κώδικάς χρειάζεται βελτιώσεις. Τις έχεις κάνει είτε θέλεις να στις πώ?
Άβαταρ μέλους
Nisok
Διαχειριστής
Διαχειριστής
 
Δημοσιεύσεις: 2637
Εγγραφή: 25 Ιαν 2009, 15:00
Τοποθεσία: /home
IRC: nisok
Εκτύπωση

Re: make και C++

Δημοσίευσηαπό malos » 09 Αύγ 2009, 02:33

Όχι ! Τι βελτιώσεις λες ;
Επεξεργαστής: AMD Ryzen 9 5900x
Μνήμη Gskill 16gb (2X8gb), 3200 mh, CL 14
Μητρική: Asrock X570 phantom gaming X
Τροφοδοτικό: Corsair 850 platinum
Δίσκος: SSD Corsair MP600 (1 TB)
Άβαταρ μέλους
malos
saintTUX
saintTUX
 
Δημοσιεύσεις: 1251
Εγγραφή: 02 Νοέμ 2008, 12:00
Εκτύπωση

Re: make και C++

Δημοσίευσηαπό Nisok » 09 Αύγ 2009, 14:16

Κώδικας: Επιλογή όλων
#include <QtGui>

int main(int argc, char *argv[]) {
QApplication app(argc, argv);

QWidget *window = new QWidget();
QVBoxLayout *layout = new QVBoxLayout();
QLabel *label = new QLabel(tr("The label here !!!"));
QLineEdit *edit = new QLineEdit(tr("Lets wright something"));
QPushButton *button = new QPushButton(tr("&close"));

connect(button, SIGNAL(clicked()), &app, SLOT(quit()));

layout->addWidget(label);
layout->addWidget(button);
layout->addWidget(edit);

window->setLayout(layout);

window->show();
return app.exec();
}


Με μια πρώτη προσέγγιση ... χωρίς να εισάγω καινούριες έννοιες.
Άβαταρ μέλους
Nisok
Διαχειριστής
Διαχειριστής
 
Δημοσιεύσεις: 2637
Εγγραφή: 25 Ιαν 2009, 15:00
Τοποθεσία: /home
IRC: nisok
Εκτύπωση

Επόμενο

Επιστροφή στο Εφαρμογές για Ανάπτυξη Λογισμικού