Hallo Christian,
dito.
Was hat ein Parse Error mit Genialitaet zu tun? :) Ich mein,
ich freu mich ueber das Kompliment, aber ein Fehler im Code
oder bei der Uebersetzung ist nicht genial.
Da ist garantiert kein Fehler im Code - ich bin ja auch kein Neuling in C. Außerdem war das leicht ironsich gemeint.
Ich mir schon. Unter Linux muss die Option fuer PThreads
-lpthreads
heissen, unter BSD ist es nur
-pthread
Funktioniert nicht. Wie auch? -lpthreads ist ein Linker-Flag (übrigends heißt es -lpthread (kein s)) und hat nichts mit dem kompilieren zu tun. Der gcc behauptet einfach, da wäre ein Parse-Error, obwohl da garantiert keiner ist. *rätsel* Vielleicht wird mit pthread_rwlock_t in einem anderen Include etwas angestellt - aber ich kanns mir eigentlich nicht vorstellen. Hab' das gerade noch mit folgender Testfile probiert:
#include <pthread.h>
#define ULL unsigned long long
#include "fo_server.h"
int main () {
printf ("Hallo\n");
return 0;
}
Gleiche Fehler. *megagrübel*
Syntaktisch korrekt ist die Datei aber. Das seltsame ist, dass das ganze immer nur beim Typ pthread_rwlock_t auftaucht. Der ist bei mir in /usr/include/bits/pthreadtypes.h definiert.
Zur Info: gcc version 2.95.4 20011002 (Debian prerelease)
Ich sagte ja, die meiste Portierungs-Arbeit ist in der
Makefile zu machen. Systemspezifisches ist im eigentlichen
Code nicht viel.
Das Makefile hätte ich selbst noch hinbekommen. (eine fehlende Bibliothek kann ich schon ergänzen) Aber hier ist wirklich der Wurm drinnen.
Wenn ich das irgendwie noch hinbekomme, dann schreibe ich ein Buildsystem, das auf autoconf basiert.
Grüße,
Christian
Sollen sich alle schämen, die gedankenlos sich der Wunder der Wissenschaft und Technik bedienen und nicht mehr davon erfasst haben als eine Kuh von der Botanik der Pflanzen, die sie mit Wohlbehagen frisst.
-- Albert Einstein