LinuxFanClub Wiki

Υπηρεσίες, Προγραμματισμός, Εκπαίδευση ..

User Tools

Site Tools


el:programming:cpp

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)

Ας δούμε τα βήματα ένα ένα:

  1. Εγκατάσταση JavaRuntimeEnvironment (http://java.sun.com/javase/) - αρχείο jre/jre-6u1-windows-i586-p.exe
  2. Εγκατάσταση gcc Gnu C++ compiler-linker - αρχείο gcc-gdb/MinGW-5.1.3.exe
    • Επιλέγουμε g++ compiler και mingw make
  3. Εγκατάσταση gdb Gnu Debugger - αρχείο gcc-gdb/gdb-5.2.1-1.exe
  4. Προσθήκη φακέλου στην μεταβλητή περιβάλλοντος path.
    • Πίνακας Ελέγχου/Σύστημα/Για Προχωρημένους/Μεταβλητές περιβάλλοντος - Μεταβλητές Συστήματος, προσθήκη ;c:\minGW\bin στο τέλος της path
    • Στην συνέχεια ανοίγουμε γραμμή εντολών (Έναρξη/Προγράμματα/Βοηθήματα) για να ελέγξουμε
      • gcc -v
      • gdb -v
  5. Αποσυμπίεση eclipse περιβάλλοντος (αρχείο eclipse\eclipse-SDK-3.2.2-win32.zip) στο C:\. (Θα δημιουργηθεί ο φάκελος C:\Eclipse)
  6. Αποσυμπίεση CDT eclipse plugin (αρχείο eclipse\org.eclipse.cdt-3.1.2-win32.x86.zip) στο C:\, για C++ στο eclipse.
  7. Βρίσκουμε το εκτελέσιμο 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

  1. File/New/Project/C++/Managed Make C++ Project
  2. Ορίζουμε ένα φάκελο για τα project μας π.χ. C:/cpp, τσεκάρουμε το use default και επιλέγουμε όνομα π.χ. myprog
  3. Απαντάμε θετικά στο να ανοίξει το C/C++ Perspective
  4. Δεξί κλικ στο myprog, new/source file και επιλέγουμε όνομα main.cpp
  5. Εισάγουμε τον παρακάτω κώδικα στο main.cpp
  #include <iostream>
  using namespace std; 
  int main()
  {
        cout << "Hello World!\n";
        return 0;
  }

Μεταγλώτισση

Αν χρησιμοποιούμε το mingw (windows μόνο) χρειάζεται να κάνουμε τις παρακάτω ρυθμίσεις για να ορίσουμε μεταγλωττιστή

  1. Δεξί κλικ στο 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

  1. Δεξι κλικ στο myprog Run As/Run
  2. Δεξι κλικ στο C/C++ Local Application και επιλογή New
  3. Στο C/C++ Application, από το κουμπάκι Search Project επιλέγουμε myprog (αν δεν είναι ήδη επιλεγμένο το Debug/prog)
  4. Πατάμε Apply και Run
  5. Στην καρτέλα console βλέπουμε τα αποτελέσματα

Eκτέλεση εξωτερικά από την γραμμή εντολών

Από την γραμμή εντολών μεταφερόμαστε στον φάκελο που έχει δημιουργηθεί το εκτελέσιμο και το εκτελούμε, π.χ.

cd c:\cpp\myprog\Debug
myprog

Αποσφαλμάττωση - Debugging

  1. Δεξί κλικ στο myprog, επιλέγουμε Debug As/Debug
  2. Από το Debugger/gdb command set αλλάζουμε το cygwin Και επιλέγουμε standard Windows
  3. Πατάμε apply και στην συνέχεια debug
  4. Απαντάμε θετικά στο να ανοίξει το Debug Perspective
  5. Με F6 εκτελούμε βηματικά, με F5 μπαίνουμε σε συναρτήσεις κτλ
  6. Μετά το τέλος από το κουμπάκι πάνω δεξία ή από το Window/Open Perspective C++ γυρνάμε στην κανονική προβολή

Συμβατότητα - Windows - Linux

Κάποιες βιβλιοθήκες είναι διαθέσιμες μόνο για windows και κάποιες άλλες για Linux. Θα χρησιμοποιήσουμε ένα αρχείο compat.cpp στο οποίο θα υλοποιούμε συναρτήσεις με συμβατό τρόπο και για τα 2 λειτουργικά και ένα compat.h στο οποίο μεταξύ άλλων θα ορίζουμε το λειτουργικό στο οποίο δημιουργούμε εκτελέσιμο

  1. 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);

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

Πηγές

1)
Αν σε νεότερες εκδόσεις βρεθούν να υπάρχουν διαφορές στα μενού ακολουθήστε την λογική των ενεργειών
el/programming/cpp.txt · Last modified: Y/m/d H:i by vagk