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

问题描述

据我所知,这不是现有问题的重复。这个问题专门针对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)

我还尝试在extern "C"声明中添加main(),但无济于事。

我已经用SDL2编写了许多应用程序,但这是我第一次使用vcpkg查找它。

解决方法

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

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