我用原子编辑器在 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[])