首页 > 解决方案 > VS 自动链接在 Windows 上使用 vcpkg 安装的 SDL2 库

问题描述

据我所知,这不是现有问题的重复。这个问题专门针对 Visual Studio 的自动链接 SDL2 库。

我已经使用vcpkgx64-windows安装了 SDL2(变体):

vcpkg install sdl2 --triplet x64-windows

我已经为 Visual Studio 提供了 vpkg 库:

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 来定位它。

标签: c++visual-studiosdlsdl-2vcpkg

解决方案


这似乎是那些创建包的人深思熟虑的决定。

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


推荐阅读