stefanoxjx
11-08-2012, 20:32
Ciao a tutti, premetto che sono anni che non programmo e che in C sotto linux non ho mai fatto nulla, ma per cercare di portare avanti un'idea che mi è passata per la testa, ho iniziato a vedere se riesco ad usare la libreria SDL sotto linux.
La mia intenzione, per facilitarmi la vita era quella di usare gambas ma siccome non trovo info su come gestire un joystick sotto tale linguaggio ho deviato su C per poi una volta capito come funzionano le SDL provare ad usarle su gambas.
Ho quindi iniziato a leggere un pochino qui: http://docs.huihoo.com/sdl/1.2/sdljoystickopen.html e visto che c'ero ho deciso di provare l'esempio che c'è proprio in quella pagina.
Ovviamente non funziona :muro:
Ho modificato un po' l'esempio come segue:
#include "/usr/include/SDL/SDL.h"
#include <stdio.h>
void main()
{
SDL_Joystick *joy;
// Check for joystick
if(SDL_NumJoysticks()>0)
{
// Open joystick
joy=SDL_JoystickOpen(0);
if(joy)
{
printf("Opened Joystick 0\n");
printf("Name: %s\n", SDL_JoystickName(0));
printf("Number of Axes: %d\n", SDL_JoystickNumAxes(joy));
printf("Number of Buttons: %d\n", SDL_JoystickNumButtons(joy));
printf("Number of Balls: %d\n", SDL_JoystickNumBalls(joy));
}
else printf("Couldn't open Joystick 0\n");
// Close if opened
if(SDL_JoystickOpened(0)) SDL_JoystickClose(joy);
}
}
però quando provo a compilare:
$ gcc test.c
/tmp/ccd6Zngk.o: In function `main':
test.c:(.text+0x9): undefined reference to `SDL_NumJoysticks'
test.c:(.text+0x1b): undefined reference to `SDL_JoystickOpen'
test.c:(.text+0x3e): undefined reference to `SDL_JoystickName'
test.c:(.text+0x62): undefined reference to `SDL_JoystickNumAxes'
test.c:(.text+0x84): undefined reference to `SDL_JoystickNumButtons'
test.c:(.text+0xa6): undefined reference to `SDL_JoystickNumBalls'
test.c:(.text+0xd2): undefined reference to `SDL_JoystickOpened'
test.c:(.text+0xe2): undefined reference to `SDL_JoystickClose'
collect2: ld returned 1 exit status
e non riesco a capire cosa non vada.
Sembra quasi che la librearia SDL non corrisponda con le chiamate che ci sono nell'esempio.
Chiedo aiuto da parte di qualche esperto in materia, perchè dopo svariate prove non sono riuscito a capirne nulla :(
Grazie.
Ciao.
La mia intenzione, per facilitarmi la vita era quella di usare gambas ma siccome non trovo info su come gestire un joystick sotto tale linguaggio ho deviato su C per poi una volta capito come funzionano le SDL provare ad usarle su gambas.
Ho quindi iniziato a leggere un pochino qui: http://docs.huihoo.com/sdl/1.2/sdljoystickopen.html e visto che c'ero ho deciso di provare l'esempio che c'è proprio in quella pagina.
Ovviamente non funziona :muro:
Ho modificato un po' l'esempio come segue:
#include "/usr/include/SDL/SDL.h"
#include <stdio.h>
void main()
{
SDL_Joystick *joy;
// Check for joystick
if(SDL_NumJoysticks()>0)
{
// Open joystick
joy=SDL_JoystickOpen(0);
if(joy)
{
printf("Opened Joystick 0\n");
printf("Name: %s\n", SDL_JoystickName(0));
printf("Number of Axes: %d\n", SDL_JoystickNumAxes(joy));
printf("Number of Buttons: %d\n", SDL_JoystickNumButtons(joy));
printf("Number of Balls: %d\n", SDL_JoystickNumBalls(joy));
}
else printf("Couldn't open Joystick 0\n");
// Close if opened
if(SDL_JoystickOpened(0)) SDL_JoystickClose(joy);
}
}
però quando provo a compilare:
$ gcc test.c
/tmp/ccd6Zngk.o: In function `main':
test.c:(.text+0x9): undefined reference to `SDL_NumJoysticks'
test.c:(.text+0x1b): undefined reference to `SDL_JoystickOpen'
test.c:(.text+0x3e): undefined reference to `SDL_JoystickName'
test.c:(.text+0x62): undefined reference to `SDL_JoystickNumAxes'
test.c:(.text+0x84): undefined reference to `SDL_JoystickNumButtons'
test.c:(.text+0xa6): undefined reference to `SDL_JoystickNumBalls'
test.c:(.text+0xd2): undefined reference to `SDL_JoystickOpened'
test.c:(.text+0xe2): undefined reference to `SDL_JoystickClose'
collect2: ld returned 1 exit status
e non riesco a capire cosa non vada.
Sembra quasi che la librearia SDL non corrisponda con le chiamate che ci sono nell'esempio.
Chiedo aiuto da parte di qualche esperto in materia, perchè dopo svariate prove non sono riuscito a capirne nulla :(
Grazie.
Ciao.