"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,但完全没有用。
- 我已经尝试查找解决方案,但它们似乎都是关于我所做的事情的教程,或者只是针对 Windows 用户的答案(我可以对此大喊大叫)。
- 我遵循了 SDL 网站上的教程,但我不太了解它们(我是 shell 的新手,只有 13 岁)并且大多数命令都不起作用。
- 我尝试通过查看 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 之类的东西来做到这一点。
基本上,我试图用 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,但完全没有用。
- 我已经尝试查找解决方案,但它们似乎都是关于我所做的事情的教程,或者只是针对 Windows 用户的答案(我可以对此大喊大叫)。
- 我遵循了 SDL 网站上的教程,但我不太了解它们(我是 shell 的新手,只有 13 岁)并且大多数命令都不起作用。
- 我尝试通过查看 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 之类的东西来做到这一点。