"Undefined symbols for architecture x86_64" 在 SDL 2 (macOS) 中

"Undefined symbols for architecture x86_64" In SDL 2 (macOS)

基本上,我试图用 C 语言制作我的第一个 SDL2 游戏,但每次都遇到相同的错误。 Undefined symbols for architecture x86_64 我无法从 SDL 调用简单的函数,例如 SDL_CreateWindow。我以为会发生这样的事情,因为我对 C 和 C++ 的了解非常有限,因为我只是刚刚学习了语言和概念。

原来,我下载了SDL 2源代码(SDL2.framework并放入)/Library/Frameworks文件。然后我只是尝试使用路径 #include </Library/Frameworks/SDL2.framework/Headers/SDL.h> 来包含 SDL2,但完全没有用。

求助,我找了好久。理想情况下,我只想要一个关于如何设置 SDL2 的清晰解释(对于新手),以便我可以使用 SDL2 编译我的程序。这是我测试的:

#include <stdio.h>
#include "/Users/christianlincoln/Documents/programs/c/SDL2.framework/Versions/A/Headers/SDL.h"
int main(int argc, char * argv[]) {
    SDL_Window *window;
    SDL_Init(SDL_INIT_VIDEO);
    window = SDL_CreateWindow(
        "Game",                  // window title
        0,                         // initial x position
        0,                         // initial y position
        640,                               // width, in pixels
        480,                               // height, in pixels
        SDL_WINDOW_OPENGL                  // flags - see below
    );
    printf("Hello!\n");
    return 0;
}

抱歉我的问题措辞错误或完全无能。

我想我明白了,问题是我还需要编译源库,但我不知道该怎么做,也不知道如何确保 gcc link 将所有东西放在一起。 所有其他教程只是告诉我将框架放在 /Library/Frameworks 中,这是错误的。

原来我在编译后不得不用gcc弄乱了一段时间:

gcc game.c -I/usr/local/include/SDL2 -lSDL2

虽然我仍然不确定如何使用 OpenGL 之类的东西来做到这一点。