Linux

This page is the Greek Translation of Linux

Εγκατάσταση του Mono

Αν χρησιμοποιείτε κάποια πρόσφατη διανομή Linux, όλα τα προαπαιτούμενα για τα projects της OpenTK θα πρέπει να είναι ήδη διαθέσιμα: το the Mono runtime και οι Mono compilers. Με τις εντολές “mono – version” και “gmcs – version” ελέγξτε αν η έξοδος είναι κάπως έτσι:

$ mono --version
Mono JIT compiler version 1.2.6 (tarball)
Copyright (C) 2002-2007 Novell, Inc and Contributors. www.mono-project.com
        TLS:           __thread
        GC:            Included Boehm (with typed GC)
        SIGSEGV:       altstack
        Notifications: epoll
        Architecture:  amd64
        Disabled:      none
 
$ gmcs --version
Mono C# compiler version 1.2.6.0

Αν μία ή και οι δύο εντολές αποτύχουν, θα πρέπει να εγκαταστήσετε το Monο, το οποίο θα πρέπει να είναι ήδη διαθέσιμο από το μενού Προσθαφαίρεση Προγραμμάτων (package manager), οπότε μία γραμμή σαν και αυτή θα πρέπει να αρκεί:

# Ubuntu und andere .deb-basierende Distributionen
sudo apt-get install mono mono-gmcs
# or
su -c "apt-get install mono mono-gmcs"
 
# Fedora Core und .rpm-basierende Distributionen
su -c "yum install mono mono-gmcs"

Αν δεν υπάρχουν διαθέσιμα αρχεία Mono για εγκατάσταση, ή αν είναι παλιές εκδόσεις (η mono – version επιστρέφει κάτι μικρότερο του 1.2.6), πρέπει να κάνετε build το Mono από τον κώδικα. Υπάρχει ένα μήνυμα στο support forum που περιγράφει τη διαδικασία του πώς να κάνετε build το Mono από τον πηγαίο κώδικα.
Αλλιώς, μπορείτε να βρείτε τα αρχεία στην έκδοση του Mono Project opentk-x.y.z-mono.tar.gz από το Sourceforge και να τα αποσυμπιέσετε:

tar -xvf opentk-0.3.13-mono.tar.gz

Ένα νέο opentk-x.y.z θα δημιουργηθεί με τέσσερις υποφακέλους: "Documentation", "Examples", "Libraries" και "QuickStart". Προσπαθήστε να τρέξετε τα παραδείγματα που περιέχονται στο δεύτερο υποφάκελο για να βεβαιωθείτε ότι όλα δουλεύουν:

cd opentk-0.9/Binaries/Examples/mono
mono Examples.exe

Λογικά θα δημιουργηθεί ένα νέο παράθυρο, με μία λίστα με όλα τα διαθέσιμα παραδείγματα. Αν όχι, κοιτάξτε τη περιοχή σφαλμάτων παρακάτω.
Ο φάκελος “Libraries” περιέχει την κύρια OpenTK (OpenTK.dll) και το αρχείο OpenTK.dll.config – αυτά είναι όλα όσα χρειάζεστε για να τρέξετε τα OpenTK projects. Αν χρησιμοποιείτε το MonoDevelo, κοιτάξτε στον “QuickStart” φάκελο για ένα project έτοιμο για χρήση. Τέλος, μη ξεχάσετε να ρίξετε μια ματιά στις release notes στο φάκελο "Documentation".

Επίλυση Σφαλμάτων

Το ακόλουθο σφάλμα έχει εντοπιστεί σε Fedora Core 8, όταν τρέχει το Examples.exe:

Unhandled Exception: System.TypeInitializationException: An exception was thrown by the type initializer for System.Windows.Forms.Form ---> System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation. ---> System.TypeInitializationException: An exception was thrown by the type initializer for System.Drawing.GDIPlus ---> System.DllNotFoundException: gdiplus.dll
  at (wrapper managed-to-native) System.Drawing.GDIPlus:GdiplusStartup (ulong&,System.Drawing.GdiplusStartupInput&,System.Drawing.GdiplusStartupOutput&)
  at System.Drawing.GDIPlus..cctor () [0x00000] --- End of inner exception stack trace ---

Αυτό οφείλεται σε μία έλλειψη στο "/etc/mono/config". Για να το διορθώσετε, ανοίξτε το προαναφερθέν αρχείο (πρέπει να είστε root!) και προσθέστε αυτή τη γραμμή:

<dllmap dll="gdiplus.dll" target="/usr/lib/libgdiplus.so.0"

Τώρα, το Examples.exe πρέπει να δουλεύει.

OpenTK από κώδικα

Το σύστημα build της OpenTK αυτή τη στιγμή χρησιμοποιεί NAnt, οπότε θα χρειαστεί να το εγκαταστήσετε:

# Ubuntu
sudo apt-get install nant
 
# Debian
su -c "apt-get install nant"
 
# Fedora
su -c "yum install nant"

Μόλις τελειώσετε με αυτό, αποσυμπιέστε τη source release και κάντε cd στον Build φάκελο

unzip opentk-0.9.zip
cd opentk-0.9/Build
mono Build.exe mono

Περιμέντε μερικά δευτερόλεπτα για να τελειώσει το compile, και ελέγξτε το φάκελο "Binaries", που μόλις εμφανίστηκε στο βασικό φάκελο της OpenTK. Για να κάνετε build στη debug έκδοση, προσθέστε "debug" ώστε η τελευταία εντολή να μοιάζει κάπως έτσι:

mono Build.exe mono debug