私はMacBookでSDLライブラリを動作させようとしています。 私はhttps://wiki.libsdl.org/InstallationでSDLのインストール手順を読み、それに従っています。コマンドを使用してCはsdl.hと一緒にコンパイルされません。
#include <SDL2/SDL.h>
#include <stdio.h>
int main()
{
SDL_Init(SDL_INIT_VIDEO);
printf("Window Initialization!\n");
SDL_Window *window;
//printf("SDL_WINDOWPOS_CENTERED is %d\n", SDL_WINDOWPOS_CENTERED);
window = SDL_CreateWindow(
"SDL2 Test",
SDL_WINDOWPOS_CENTERED,
SDL_WINDOWPOS_CENTERED,
640, 480, 0);
if(window == NULL){
printf("Creation of Window Failed\n");
SDL_Quit();
return -1;
}
SDL_Delay(3000); //delay for 3000 ms
SDL_Renderer* rend = NULL;
SDL_DestroyWindow(window);
SDL_Quit();
return 0;
}
:
gcc main.c -o run
次のエラーが印刷されている:
Undefined symbols for architecture x86_64:
"_SDL_CreateWindow", referenced from:
_main in sdl1-a80c27.o
"_SDL_Delay", referenced from:
_main in sdl1-a80c27.o
"_SDL_DestroyWindow", referenced from:
_main in sdl1-a80c27.o
"_SDL_Init", referenced from:
_main in sdl1-a80c27.o
"_SDL_Quit", referenced from:
_main in sdl1-a80c27.o
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
私はなかったので、私は、次のCコードをコンパイルしようとしたときしかし、
makeとsudoをインストールすると、Webサイトによると、SDLは現在 "普遍的な"ものでなければなりません。だから私はリンカーは必要ないと思う。しかし、それは明らかにそうではありません。
私はまた、/ Library/Frameworksにフレームワークファイルを追加しようとしました。そして、私がした場合:
gcc sdl1.c -o run -F/Library/Frameworks/SDL2.framework/Headers -framework SDL2
コードがコンパイルされることがあります。しかし、時にはSDL2_image.hも含めて、別の-F /.../を追加するとうまくいきません。
私は本当に提案/アドバイスをいただきありがとうございます。ありがとう!
おそらく '-lSDL'でコンパイルする必要があります。 – immibis
フラグを取得するには 'sdl2-config --cflags --libs' –