PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : GCC - Gleicher Code für Linux und Win32 verwenden und compilieren



Fred556
07-11-2004, 14:20
Hallo,

ich bin ein Delphi coder möchte aber wegen Linux mehr auf C umsteigen.
Kann mir wer einen TIP geben wie ich am besten den Code so schreibe das er auf Linux und Windows zu compieren und zu verwenden geht?

Oder geht das nur auf Konsollenprogrammen?

Wie sieht es mit den Checkbox, ListView, Memo, ... Feldern aus?

Joghurt
07-11-2004, 15:43
Wenn du GUI erstellen willst, empfiehlt sich eine Cross-Platform GUI-Bibliothek, wie z.B. gtk (C, Linux/Windows), FLTK oder wxWidgets (mein Favorit; C++, Windows/Unix/Mac)

www.gtk.org
www.fltk.org
www.wxwidgets.org

cybercrow
07-11-2004, 16:09
Die einfachste Methode ist, dass du dich an den Standard hältst. Damit kannst du aber keine GUIs erzeugen.
Dazu brauchst du ein Toolkit, wie auch schon gesagt wurde. Wenn du in C Programmieren willst ist wohl GTK+(www.gtk.org) das richtige für dich.

panzi
08-11-2004, 15:23
Die einfachste Methode ist, dass du dich an den Standard hältst. Damit kannst du aber keine GUIs erzeugen.
Dazu brauchst du ein Toolkit, wie auch schon gesagt wurde. Wenn du in C Programmieren willst ist wohl GTK+(www.gtk.org) das richtige für dich.
Aber vieles nicht GUI abhängiges geht auch mit reinem ANSI C nicht Plattformunabhängig (sockets, threads, usw.). Da nehme ich dann POSIX.
Problem: Windows ist NCIHT POSIX kompatiebel.
Lösung: hab cygwin installiert.

locus vivendi
08-11-2004, 18:21
ich bin ein Delphi coder möchte aber wegen Linux mehr auf C umsteigen.
Darf ich empfehlen dann gleich C++ zu lernen? Delphi liegt näher an C++ als an C. Ansonsten möchte ich mich den anderen anschließen: Eines der größten Hindernisse für nicht portable Programme sind nicht-portable Bibliotheken. Also grob gesagt nimmt die Portabilität in dieser Reihenfolge ab: Sprachstandard (C, C++) -> Posix -> Industrie- und "Quasi"-Standards (z.B. win32) -> Gute Bibliotheken -> Selbstgestricktes und wenig portable Bibliotheken.
Wenn du selber portable Programme schreiben willst, solltest du also Funktionalität die in dieser Folge am Anfang steht, den hinteren vorziehen. (Das ist natürlich nur eine *grobe* Einschätzung: Wenn man genügend Zeit, Fähigkeiten und Kenntnisse hat, kann man natürlich auch selber Komponenten für verschiedene Plattformen schreiben). Natürlich bedeutet das insbesondere auch, das du nachlesen musst, zu welchem Standard oder welcher Konvention eine konkrete Funktion z.B. gehört. (Wenn du GNU/linux lauffähig installiert hast, gib doch z.B. mal "man 2 mknod", "man 2 mkdir" und "man strcpy" ein, um zu sehen wie die Hinweise zur Kompatibilität von Systemfunktionen aussehen, und welche Unterschiede es gibt)


Oder geht das nur auf Konsollenprogrammen?
Nein...
Was GUIs angeht würde ich dir ja gerne Qt ans Herz legen (http://www.trolltech.com). Leider bietet der Hersteller selber für Windows neben der Kommerziellen Version keine als Freie Software ("Open Source") an. Es gibt allerdings zwei Projekte mit denen man Qt dennoch mit Windows verwenden kann. Ansonsten ist bei deinem Delphi-Hintergrund Qt wirklich interessant (es gibt zum Beispiel einen schönen "Form-Designer")

Wenn du dich, was mich freuen würde, tatsächlich für C++ entscheiden würdest, ist als eines der meist-portierten Bibliotheken für nicht-GUI Sachen auch ACE zu empfehlen. Das deckt zum Beispiel Threading, Prozess-Management, Sockets, usw... ab.
http://www.cs.wustl.edu/~schmidt/ACE.html

Joghurt
09-11-2004, 11:24
Noch weitere nützliche Sachen für C++

Cross-Platform GUI: wxWidgets (früher wxWindows), für Windows, Linux. Mac, Win CE, DOS, hastenichtgesehen; finde ich persönlich besser als Qt, da du auch proprietäre Programme ohne Extralizenz entwickeln kannst.

Die boost-libs sind eine Sammlung von Cross-Platform Libraries für die tägliche Arbeit, einige Teile davon sollen evtl. auch in spätere C++-Standards aufgenommen werden. Sie sind sehr gut programmiert; allerdings meistens auch Template-Heavy.
Es gibt Libs für Parser, Threads, Mathematik, funktionelle Programmierung etc.

www.wxwidgets.org
www.boost.org

Fred556
09-11-2004, 12:06
Hallo,

danke mal für eure Antworten.
GTK kenne ich von Lazarus. Lazarus ist ein Delphi unter GNU kann Linux, Win32, BEOS und andere Kompilieren. Auch GTK.

Das ist so ein Grafik interface das auf allen (unterstützen) wie Linux Win32 verwenden kann. Sprich mit GTK kompiliere ich den Grafikteil problemlos. Das andere Passe ich das auf den Pascalstandard an um combatibel zu werden.

Verstehe ich das mit GTK so richtig?