c语言 - 无法创建用于在 Windows 中运行 SDL 游戏的可执行文件(错误:之前的SDL_main声明是...



我用原子编辑器在 ubuntu 中使用 SDL2 库创建了一个游戏,为了编译,我用以下代码创建了一个 makefile:

game: main.c LoadGame.c Events.c CreateTex.c CollisionDetection.c Render.c gameStatus.c gcc main.c LoadGame.c Events.c CreateTex.c CollisionDetection.c Render.c gameStatus.c -w -lSDL2 -lSDL2_image -lSDL2_mixer -lSDL2_ttf -o game -lm -I.

现在我想创建一个.exe所以我创建了这个 makefile:

game: main.c LoadGame.c Events.c CreateTex.c CollisionDetection.c Render.c gameStatus.c i686-w64-mingw32-gcc main.c LoadGame.c Events.c CreateTex.c CollisionDetection.c Render.c gameStatus.c -w -lSDL2 -lSDL2_image -lSDL2_mixer -lSDL2_ttf -o game.exe -lm -I.

但它给出了这个错误:

在/usr/i686-w64-mingw32/include/SDL2/SDL.h:32:0 包含的文件中,  从 main.c:2: main.c:8:5:错误:"SDL_main"的类型冲突  int main(int argc, char const *argv[]){  ^/usr/i686-w64-mingw32/include/SDL2/SDL_main.h:117:39:注意:之前声明的"SDL_main"在这里  tern C_LINKAGE SDLMAIN_DECLSPEC int SDL_main(int argc, char *argv[]);  ^~~~~~~~ 生成文件:5:目标"游戏"的配方失败 制作:*** [游戏] 错误 1

所以我需要一些帮助,以便我可以从我的源代码创建一个.exe文件以在 Windows 中运行它,而

好的,正如 keltar 所指出的那样,问题似乎出在我的程序中,int main(int argc, char const *argv[])argv 数组是常量,

正如
这里所述,它不起作用。 所以正确的代码是: int
main(int argc, char *argv[])

最新更新