鸡方案中链接sdl2(对SDL函数的未定义引用)
Linking sdl2 (undefined reference to SDL functions) in chicken scheme
我正在尝试通过使用 sdl 编写一个简单的游戏来学习小鸡计划。我正在尝试创建一个外部函数来初始化 SDL:
(use foreigners lolevel)
(foreign-declare "#include <SDL2/SDL.h>")
(define (sdl-init)
(foreign-lambda* int ((int val))
"if (SDL_Init(SDL_INIT_VIDEO) < 0) {
SDL_LogError(SDL_LOG_CATEGORY_APPLICATION, \"Couldn't initialize SDL: %s\",
SDL_GetError());
exit(1);
}
"))
我收到错误:
undefined reference to `SDL_Init'
undefined reference to `SDL_GetError'
undefined reference to `SDL_LogError'
所以它找不到 SDL。通常在 C 中你会做这样的事情(来自 sdl 页面):
gcc -o test test.c sdl-config --cflags --libs
有没有办法在编译 .scm 文件时添加这些标志。
我建议使用 sdl2 egg。如果你仍然喜欢建立你自己的 sdl2 绑定,你可以使用这样的东西:
csc test.scm -C "`sdl-config --cflags`" -L "`sdl-config --libs`"
我还注意到您仍在使用不再维护的 CHICKEN 4;您可能要考虑更新到 CHICKEN 5。
我正在尝试通过使用 sdl 编写一个简单的游戏来学习小鸡计划。我正在尝试创建一个外部函数来初始化 SDL:
(use foreigners lolevel)
(foreign-declare "#include <SDL2/SDL.h>")
(define (sdl-init)
(foreign-lambda* int ((int val))
"if (SDL_Init(SDL_INIT_VIDEO) < 0) {
SDL_LogError(SDL_LOG_CATEGORY_APPLICATION, \"Couldn't initialize SDL: %s\",
SDL_GetError());
exit(1);
}
"))
我收到错误:
undefined reference to `SDL_Init'
undefined reference to `SDL_GetError'
undefined reference to `SDL_LogError'
所以它找不到 SDL。通常在 C 中你会做这样的事情(来自 sdl 页面):
gcc -o test test.c sdl-config --cflags --libs
有没有办法在编译 .scm 文件时添加这些标志。
我建议使用 sdl2 egg。如果你仍然喜欢建立你自己的 sdl2 绑定,你可以使用这样的东西:
csc test.scm -C "`sdl-config --cflags`" -L "`sdl-config --libs`"
我还注意到您仍在使用不再维护的 CHICKEN 4;您可能要考虑更新到 CHICKEN 5。