Table of Contents
C++
Για την ανάπτυξη εφαρμογών σε C++ θα χρησιμοποιήσουμε το γενικό περιβάλλον ανάπτυξης eclipse και το plugin CDT που αφορά C++
Eclipse για C++ - Εγκατάσταση
Windows XP
Θα εγκαταστήσουμε
- Το περιβάλλον ανάπτυξης Eclipse (http://www.eclipse.org/)
- Από το MinGW project (http://www.mingw.org/) εκδόσεις για windows του gcc compiler,gnu utilities και τον gdb (για compilation, linking, χρήση makefile και debugging)
Ας δούμε τα βήματα ένα ένα:
- Εγκατάσταση JavaRuntimeEnvironment (http://java.sun.com/javase/) - αρχείο jre/jre-6u1-windows-i586-p.exe
- Εγκατάσταση gcc Gnu C++ compiler-linker - αρχείο gcc-gdb/MinGW-5.1.3.exe
- Επιλέγουμε g++ compiler και mingw make
- Εγκατάσταση gdb Gnu Debugger - αρχείο gcc-gdb/gdb-5.2.1-1.exe
- Προσθήκη φακέλου στην μεταβλητή περιβάλλοντος path.
- Πίνακας Ελέγχου/Σύστημα/Για Προχωρημένους/Μεταβλητές περιβάλλοντος - Μεταβλητές Συστήματος, προσθήκη ;c:\minGW\bin στο τέλος της path
- Στην συνέχεια ανοίγουμε γραμμή εντολών (Έναρξη/Προγράμματα/Βοηθήματα) για να ελέγξουμε
- gcc -v
- gdb -v
- Αποσυμπίεση eclipse περιβάλλοντος (αρχείο eclipse\eclipse-SDK-3.2.2-win32.zip) στο C:\. (Θα δημιουργηθεί ο φάκελος C:\Eclipse)
- Αποσυμπίεση CDT eclipse plugin (αρχείο eclipse\org.eclipse.cdt-3.1.2-win32.x86.zip) στο C:\, για C++ στο eclipse.
- Βρίσκουμε το εκτελέσιμο C:\eclipse\eclipse.exe και δημιουργούμε συντόμευση στην επιφάνεια εργασίας
Linux
Εγκατάσταση JavaRuntimeEnvironment (http://java.sun.com/javase/)
aptitude install sun-java6-jre
Εγκατάσταση περιβάλλοντος ανάπτυξης Eclipse (http://www.eclipse.org/)
aptitude install eclipse -r
Εγκατάσταση CDT eclipse plugin για C++ στο eclipse.
aptitude install eclipse-cdt
Eclipse project
ΟΙ οδηγίες αφορούν eclipse 3.2.2 και CDT plugin 3.1.2. 1)
Δημιουργία νέου project
- File/New/Project/C++/Managed Make C++ Project
- Ορίζουμε ένα φάκελο για τα project μας π.χ. C:/cpp, τσεκάρουμε το use default και επιλέγουμε όνομα π.χ. myprog
- Απαντάμε θετικά στο να ανοίξει το C/C++ Perspective
- Δεξί κλικ στο myprog, new/source file και επιλέγουμε όνομα main.cpp
- Εισάγουμε τον παρακάτω κώδικα στο main.cpp
#include <iostream> using namespace std; int main() { cout << "Hello World!\n"; return 0; }
Μεταγλώτισση
Αν χρησιμοποιούμε το mingw (windows μόνο) χρειάζεται να κάνουμε τις παρακάτω ρυθμίσεις για να ορίσουμε μεταγλωττιστή
- Δεξί κλικ στο myprog, properties/“C/C++ Build”/Build Settings/ (στο configuration debug)
- Στην καρτέλα configuration settings Build Settings
- Ξετσεκάρουμε το use default command
- Αλλάζουμε το make -k σε mingw32-make -k
- Ομοίως για το configuration release
Εάν είναι επιλεγμένο το build automatically στο μενού project η μεταγγλώτιση θα γίνει αυτόματα κατά την εκτέλεση (από το μενού Run επιλέγωντας Run).
Αν δεν είναι επιλεγμένη η αυτόματη μεταγγλώτισση
- Δεξί κλικ στο myprog, Active Build Configuration/Debug
- Δεξί κλικ στο myprog Build Project
Εκτέλεση
Εκτέλεση εσωτερικά στο Eclipse
- Δεξι κλικ στο myprog Run As/Run
- Δεξι κλικ στο C/C++ Local Application και επιλογή New
- Στο C/C++ Application, από το κουμπάκι Search Project επιλέγουμε myprog (αν δεν είναι ήδη επιλεγμένο το Debug/prog)
- Πατάμε Apply και Run
- Στην καρτέλα console βλέπουμε τα αποτελέσματα
Eκτέλεση εξωτερικά από την γραμμή εντολών
Από την γραμμή εντολών μεταφερόμαστε στον φάκελο που έχει δημιουργηθεί το εκτελέσιμο και το εκτελούμε, π.χ.
cd c:\cpp\myprog\Debug myprog
Αποσφαλμάττωση - Debugging
- Δεξί κλικ στο myprog, επιλέγουμε Debug As/Debug
- Από το Debugger/gdb command set αλλάζουμε το cygwin Και επιλέγουμε standard Windows
- Πατάμε apply και στην συνέχεια debug
- Απαντάμε θετικά στο να ανοίξει το Debug Perspective
- Με F6 εκτελούμε βηματικά, με F5 μπαίνουμε σε συναρτήσεις κτλ
- Μετά το τέλος από το κουμπάκι πάνω δεξία ή από το Window/Open Perspective C++ γυρνάμε στην κανονική προβολή
Συμβατότητα - Windows - Linux
Κάποιες βιβλιοθήκες είναι διαθέσιμες μόνο για windows και κάποιες άλλες για Linux. Θα χρησιμοποιήσουμε ένα αρχείο compat.cpp στο οποίο θα υλοποιούμε συναρτήσεις με συμβατό τρόπο και για τα 2 λειτουργικά και ένα compat.h στο οποίο μεταξύ άλλων θα ορίζουμε το λειτουργικό στο οποίο δημιουργούμε εκτελέσιμο
- conio.h (μόνο σε windows)
- gotoxy(). Αντί για κλήσεις σε gotoxy() και cout, printf, ορίζουμε μια νέα διαδικασία xyprintf (σύμφωνα με την πρόταση που βρέθηκε εδώ
- random(int maxnum). Χρήση της ANSI rand με το mod
- num=random(5); σε num = rand() % 5; (0..4)
- randomize(). Χρήση της ANSI srand
- randomize(); σε srand(100);
- MFC Visual C++ Εφαρμογές και μετατροπή σε linux
ncurses - Κονσόλα και Linux
http://heather.cs.ucdavis.edu/~matloff/UnixAndC/CLanguage/Curses.pdf
aptitude install libncurses5-dev
Στην αρχή των προγραμμάτων
#include <curses.h>
Δεξί κλικ στο project/properties/GCC C++ Linker/Libraries και προσθέτουμε curses
xwidgets
Δοκιμή μεταγλώττισης του ftp://biolpc22.york.ac.uk/pub/binary/wxWidgets-DialogsDemo-SuSE-GTK.tar.gz από http://www.wxwindows.org/downloads/demos.htm
aptitude install wx2.6-headers libwxbase2.6-dev libwxgtk2.6-dev wx-common wx2.6-examples
ln -s /usr/include/wx-2.6/wx/ /usr/include/wx
Πηγές
- Ενδιαφέρουσες προσθήκες στην γλώσσα στις τελευταίες εκδόσεις
- Reference
- String Class examples :
- C++20
