VS 自动链接到 Windows 上随 vcpkg 安装的 SDL2 库

VS auto-linking against SDL2 libraries installed with vcpkg on Windows

据我所知,这不是现有问题的重复。这个问题专门针对 Visual Studio 的自动链接 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 来定位它。

这似乎是创建程序包的人故意做出的决定。

如果您查看 the package description file,您可以看到 SDL2main.lib 正被移动到 manual-link 目录中。我对 vcpkg 不熟悉,所以我不知道你如何“手动 link” 来对抗它,但我认为这是可能的。