尝试使用 mingw 编译 c++ sdl2 程序时出错

Error while trying to compile an c++ sdl2 program with mingw

提问人:Blay 提问时间:9/6/2022 最后编辑:genpfaultBlay 更新时间:2/14/2023 访问量:324

问:

基本上,当我尝试在 linux 上为 Windows 编译程序时,我收到这样的错误:

/usr/lib/gcc/x86_64-w64-mingw32/12.2.0/../../../../x86_64-w64-mingw32/bin/ld: ../libs/SDL2-2.24.0/x86_64-w64-mingw32/lib//libSDL2main.a(SDL_windows_main.o): in function `main_getcmdline':  
/Users/valve/release/SDL/SDL2-2.24.0-source/foo-x64/../src/main/windows/SDL_windows_main.c:82: undefined reference to `SDL_main'
collect2: error: ld returned 1 exit status

我的主要功能是这样开始的:

int main(int argv, char* args[])

我的编译脚本如下所示:

#!/bin/bash
x86_64-w64-mingw32-c++ -I../libs/SDL2-2.24.0/x86_64-w64-mingw32/include/ -L../libs/SDL2-2.24.0/x86_64-w64-mingw32/lib/ -I../libs/SDL2_image-2.6.2/x86_64-w64-mingw32/include/ -L../libs/SDL2_image-2.6.2/x86_64-w64-mingw32/lib/ -lmingw32 -lSDL2main -lSDL2 -lSDL2_image -mwindows

这是我的文件结构:

☃️
├── my-project <where I run my script>
│   └── main.cpp
├── my-script.sh
└── libs
    ├── SDL2-2.24.0
    └── SDL2_image-2.6.2

关于为什么我不能编译它的任何线索?

C++ Linux SDL 未定义参考

评论

1赞 HolyBlackCat 9/6/2022
您不将源文件名传递给编译器?

答:

0赞 Blay 9/6/2022 #1

哦,好吧,我只是愚蠢,没有将 main.cpp 的名称传递给编译器。