gpt4 book ai didi

c++ - 如何使用 GLFW 预编译二进制文件编译 Visual Studio 2019 发布版本

转载 作者:行者123 更新时间:2023-11-28 04:11:26 32 4
gpt4 key购买 nike

我正在尝试在 Visual Studio 2019 中构建一个使用 GLFW 预编译静态库的程序(如果重要的话,它适用于 Vulkan 而不是 OpenGL)。当我在 Debug模式下构建时,它编译得很好。当我在 Release模式下编译时,出现以下错误:

Error   LNK2001 unresolved external symbol __security_check_cookie  [myapp] [project_path]\glfw3.lib(win32_joystick.obj)    1   
Error LNK2001 unresolved external symbol __security_check_cookie [myapp] [project_path]\glfw3.lib(wgl_context.obj) 1
Error LNK2001 unresolved external symbol __security_check_cookie [myapp] [project_path]\glfw3.lib(egl_context.obj) 1
Error LNK2001 unresolved external symbol __security_check_cookie [myapp] [project_path]\glfw3.lib(osmesa_context.obj) 1
Error LNK2001 unresolved external symbol __security_check_cookie [myapp] [project_path]\glfw3.lib(input.obj) 1
Error LNK2001 unresolved external symbol __security_check_cookie [myapp] [project_path]\glfw3.lib(win32_init.obj) 1
Error LNK2001 unresolved external symbol __security_check_cookie [myapp] [project_path]\glfw3.lib(win32_monitor.obj) 1
Error LNK2001 unresolved external symbol __security_check_cookie [myapp] [project_path]\glfw3.lib(context.obj) 1

还有更多与 glfw 相关的错误。

我已经检查过:

a) 我的调试和发布配置都配置为与 glfw 链接完全相同。

b) glfw3.lib 文件来自 lib-vc2019 文件夹中最新下载的预编译二进制文件。

c) 它们是 64 位二进制文​​件,调试和发布都在 64 位模式下构建

只是为了测试,我还尝试了 32 位二进制文​​件(显然不起作用)并且我还删除了库以确保两个构建都给出了相同的错误消息(他们确实给出了)

我使用的唯一 glfw 函数是

glfwInit()
glfwGetRequiredInstanceExtensions()
glfwCreateWindow()
glfwCreateWindowSurface()
glfwDestroyWindow()
glfwTerminate()

我猜代码不是问题;但它是由某些我不知道的编译器设置引起的,默认情况下在发布配置中是不同的。

最佳答案

这是编译器“安全检查”选项的问题(很可能)。在您的项目设置中,转到 C/C++ 和“代码生成”的设置,您应该在其中选择“禁用安全检查”或“启用安全检查”,以调试配置(有效)的设置为准。

但是请检查此设置在您的 Debug 和 Release 版本之间是否不同!我怀疑您必须选择与构建 GLFW 库时使用的设置相同的设置。

关于c++ - 如何使用 GLFW 预编译二进制文件编译 Visual Studio 2019 发布版本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57702648/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com