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” 来对抗它,但我认为这是可能的。
据我所知,这不是现有问题的重复。这个问题专门针对 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” 来对抗它,但我认为这是可能的。