PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : code mit sdl will nicht kompilieren



Camel69
19-05-2003, 19:41
c++ -O2 -O0 -g3 -Wall -I/usr/include/GL -I/usr/include/SDL -D_REENTRANT -fno-exceptions -fno-check-new -o darkwood_linux dwoglinit.o main.o -lGL -lGLU /usr/lib/libSDL.so -lm -L/usr/X11R6/lib -lX11 -lXext -ldl
/usr/lib/libSDL.so: undefined reference to `pthread_create'
/usr/lib/libSDL.so: undefined reference to `pthread_cancel'
/usr/lib/libSDL.so: undefined reference to `sem_destroy'
/usr/lib/libSDL.so: undefined reference to `sem_wait'
/usr/lib/libSDL.so: undefined reference to `sem_post'
/usr/lib/libSDL.so: undefined reference to `sem_init'
/usr/lib/libSDL.so: undefined reference to `pthread_sigmask'
/usr/lib/libSDL.so: undefined reference to `sem_trywait'
/usr/lib/libSDL.so: undefined reference to `pthread_mutexattr_init'
/usr/lib/libSDL.so: undefined reference to `sem_getvalue'
/usr/lib/libSDL.so: undefined reference to `pthread_join'
collect2: ld returned 1 exit status

folgende fehler kommen, wenn ich mein programm kompilieren will (es verwendet sdl, welches gerade erst mit apt-get install libsdl-dev installiert wurde)

ich kann mit den fehler überhaupt nix anfangen, deshalb würde ich mir sehr freuen, wenn ihr mir helfen könntet

pik7
19-05-2003, 19:56
hallo,

sieht nach problemen mit Threads aus.
versuche mal dem gcc noch das mitzugeben:
-lpthread

hier ein kleines Progrämschen ob bei dir überhaupt Threads
unterstützt werden.




#include<stdio.h>
#include<unistd.h>
#include<stdlib.h>

int main() {

printf("Posix Version ist set to %ld\n" , _POSIX_VERSION);

if (_POSIX_VERSION < 199506L) {

if (_POSIX_C_SOURCE >= 199506L) {
printf("Keine unterstützung für POSIX1003.1c Threads");
}
else {
printf("Versuche mit -D_POSIX_C_SOURCE=199506L\n");
}
}
else{

printf("System unterstützt POSIX1003.1c threads\n");
#ifdef _POSIX_THREAD_PRIORITY_SCHEDULING
printf("inclusive unterstützung für priority Scheduling\n");
#else
printf("aber unterstützt nicht priority Scheduling\n");
#endif
}

exit (EXIT_SUCCESS);

}



gruß

anda_skoa
19-05-2003, 20:59
Wenn du mit SDL arbeitest, bietet es sich an, sdl-config zu verwenden.
Das kennt nämlich die nötigen Pfade für Include und Link Direktiven

sdl-config --libs
und
sdl-config --cflags

Ciao,
_

Camel69
19-05-2003, 21:16
hab jetzt mal die ausgabe von sdl-config --libs verwendet und jetzt gehts
hatte im projekt halt die alten einstellungen drin, die auf meinem alten system funktioniert haben ;)
danke für den tipp :)