Hello, I am trying to write a simple C module for Guile (for the learning experience) and I have run into a cryptic error. I have compiled `sdl-guile.c' to `sdl-guile.so' with the following command.
gcc -shared -o sdl-guile.so -fPIC sdl-guile.c `guile-config compile` `sdl-config --cflags` I then run `guile' and evaluate (load-extension "./sdl-guile.so" "init_module") and get the following output. ERROR: In procedure load-extension: ERROR: In procedure dynamic-link: file: "./sdl-guile.so", message: "file not found" I can follow the example in section 6.20.3 C Extensions of the manual with no trouble, so I think I am not properly linking to SDL. Can anyone help me with this? Regards, Aidan Gauland
#include <libguile.h>
#include "SDL.h"
void init_video();
void init_module()
{
/* Initialize SDL. */
if (SDL_Init(SDL_INIT_VIDEO) != 0) {
fprintf(stderr, "SDL initialization error: %s\n", SDL_GetError());
exit(EXIT_FAILURE);
}
/* SDL_Quit should be called when the program finishes. */
atexit(SDL_Quit);
/* Register guile procedures. */
scm_c_define_gsubr("init-video", 0, 0, 0, init_video);
}
void init_video()
{
/* Set up video. */
SDL_Surface *screen;
screen = SDL_SetVideoMode(640, 480, 24, SDL_HWSURFACE);
if (screen == NULL) {
fprintf(stderr, "SDL video error: %s\n", SDL_GetError());
exit(EXIT_FAILURE);
}
}
signature.asc
Description: Digital signature
