Archiv verlassen und diese Seite im Standarddesign anzeigen : Kompilieren
Kann mir hier jemand einen einfachen Quellcode zeigen, der unter Linux kompiliert wurde?
Vielen Dank!
Cedric Loup
21.04.2008, 20:31
Hallo Hermi
Ich weiss nicht genau, was Du mit dieser Frage meinst?
Wenn ich einen Treiber angenommen für Ati runter lade, so ist dieser noch nicht kompiliert.
Das heisst, wenn ich danach zum Beispiel den Treiber installiere nach der Anleitung, so wird dies danach kompiliert, darum Setzen diese Treiber den gcc voraus.
Früher hatte man bei den Programmen nur den Source Code erhalten und danach musste man diesen mit der drei Satz Formel installieren.
./configure
make
make Install
Danach wurde dieses Programm installiert.
Beispiel der Apache Web Server:
./configure --prefix=/user/local/apache2
make
make install
Die Option --prefix gibt den Ort der Installation an
Liebe Grüsse
Cedric
sirarokh
27.04.2008, 09:24
Hallo Hermi,
Was hättest du denn gerne für einen Quellcode?
Einfacher C/C++ Code ist auf jedem Betriebssystem der Welt kompilierbar -- etwa ein standard-Hello-World-Programm:
C
#include <stdio.h>
int main( int argc, char * argv[] ) {
printf("Hello, World!\n");
}
C++
#include <iostream>
using namespace std;
int main( int argc, char * argv[] ) {
cout << "Hello, World!" << endl;
}
Diese Programme lassen sich alle mit einem einfachen
gcc dateiname.c oder gcc dateiname.cpp kompilieren
Kompliziertere Programme verwenden noch externe Bibliotheken, die dann auch häufig Betriebssystemabhängig sind. Als kleine Übung könntest du etwa versuchen, eine aktuelle Version von Flightgear zu installieren: Alle benötigten Bibliotheken herunterladen, für jede Bibliothek einmal
./configure
make
sudo make install
eingeben, um sie zu installieren. Dann den Quellcode und das Datenpaket von Flightgear selbst herunterladen und auf die selbe Weise kompilieren und installieren.
Oder wolltest du einfach ein paar Beispielprogramme, um ein wenig C/C++ zu lernen? Davon habe ich massenhaft (ich gebe seit zwei Semestern ein Informatik-Tutorium und habe einen Nebenjob als Programmierer)
Vielen Dank Bastian.
Da habe ich ja den Spezialisten gefunden ;)
Jetzt brauchen ich aber genau solch ein Beispiel
was ein "Hello World"
als Plugin für den Xplane zur Verfügung stellt
C
Code:
#include <stdio.h>
++++++++++++++++++++++++++++++
und hier fängt bei den Plugins mein Unwissen an
#include "XPLMPlanes.h"
#include "XPLMUtilities.h"
#include "XPLMDataAccess.h"
wie gesagt obiges beispiel mit Hello World geht immer schon
nur bei diesen XPlane include bekomme ich Fehler
In file included from XPLMDisplay.h:72,
from Planes.c:3:
XPLMDefs.h:79:4: error: #error "Platform not defined!"
XPLMDefs.h:108:3: error: #error "Platform not defined!"
In file included from Planes.c:3:
XPLMDisplay.h:205: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘int’
und genau an dieses #error "Platform not defined!" scheitere ich
es wird dann noch die XPLMDefs.h aufgerufen
aber ich weiß nicht wie man die Plattform für Linux "Suse 10.3" definiert
eine abschnitt "LIN" ist ja vorhanden
und mit googeln bin ich nicht weiter gekommen
in der XPLMDefs.h steht drin
#ifdef __cplusplus
#if APL
#if __GNUC__
#define PLUGIN_API extern "C" __attribute__((visibility("default")))
#elif __MACH__
#define PLUGIN_API extern "C"
#else
#define PLUGIN_API extern "C" __declspec(dllexport)
#endif
#elif IBM
#define PLUGIN_API extern "C" __declspec(dllexport)
#elif LIN
#define PLUGIN_API extern "C"
#else
#error "Platform not defined!"
#endif
#else
#if APL
#if __GNUC__
#define PLUGIN_API __attribute__((visibility("default")))
#elif __MACH__
#define PLUGIN_API
#else
#define PLUGIN_API __declspec(dllexport)
#endif
#elif IBM
#define PLUGIN_API __declspec(dllexport)
#elif LIN
#define PLUGIN_API
#else
#error "Platform not defined!"
#endif
#endif
#if APL
#if XPLM
#if __GNUC__
#define XPLM_API __attribute__((visibility("default")))
#elif __MACH__
#define XPLM_API
#else
#define XPLM_API __declspec(dllexport)
#endif
#else
#define XPLM_API
#endif
#elif IBM
#if XPLM
#define XPLM_API __declspec(dllexport)
#else
#define XPLM_API __declspec(dllimport)
#endif
#elif LIN
#if XPLM
#define XPLM_API
#else
#define XPLM_API
#endif
#else
#error "Platform not defined!"
#endif
/****************************
sirarokh
27.04.2008, 20:12
I würde einmal sagen, dass du in deinem Quellcode das Symbol LIN definieren solltest. Andererseits wäre das gelinde gesagt ein ziemlich unschöner Stil.
Morgen werde ich da einmal tiefere Nachforschungen anstellen und einen eigenen Programmerversuch starten und dir berichten. Für heute habe ich schon genug für die "Daten und Algorithmen"-Vorlesung programmiert.
Powered by vBulletin® Version 4.2.2 Copyright ©2024 Adduco Digital e.K. und vBulletin Solutions, Inc. Alle Rechte vorbehalten.