据我所知,这不是现有问题的重复。此问题特别涉及于Visual Studio自动链接SDL2库。
我已使用vcpkg安装了SDL2(
为什么我需要指定
我已使用vcpkg安装了SDL2(
x64-windows
变体)。vcpkg install sdl2 --triplet x64-windows
我已经将vpkg库提供给Visual Studio:
vcpkg integrate install
我使用VS 2019配置了我的项目,使用Console
子系统,我的主程序如下:
#define SDL_MAIN_HANDLED
#include <SDL2/SDL.h>
int main(int, char*[])
{
}
为什么我需要指定
SDL_MAIN_HANDLED
?似乎自动链接SDLmain2.lib
无法正常工作?如果不指定SDL_MAIN_HANDLED
,则链接会失败。unresolved external symbol main referenced in function "int __cdecl invoke_main(void)" (?invoke_main@@YAHXZ)
我也尝试在main()
声明中添加extern "C"
,但没有成功。
我已经写了很多使用SDL2的应用程序,但这是我第一次使用vcpkg来定位它。
SDL_MAIN_HANDLED
的作用和用途;我无法弄清楚的是为什么我需要在特定的上下文中使用它,以及是否有更好的方法来处理事情。 - François Beaune