c++ - 静态链接 GLFW 时未定义对 `__ms_vsnprintf' 的引用

标签 c++ mingw glfw win64

我正在尝试使用 mingw 在 Windows 8 64 位中编译 GLFW 快速入门指南 ( Here )。我使用的是来自 glfw 网站的官方 32 位 Windows 二进制文件。

当我通过链接 -lglfw3dll -lgdi32 -lopengl32 -lglew32 和定义 GLFW_DLL 动态链接 glfw 库时,一切正常。

但是,当我尝试静态链接 glfw 时,我得到了 undefined reference to '__ms_vsnprintf'

我的静态链接命令是 mingw32-g++.exe -o bin\Release\test.exe obj\Release\main.o -s -lglfw3 -lgdi32 -lopengl32 -lglew32sGLEW_STATIC 已定义。

最佳答案

当我尝试为 GLFW 构建示例应用程序时,我遇到了同样的问题。我将编译器套件从原来的 MinGW32 切换到 MinGW-W64,这解决了问题。阅读这篇文章后,我想到了这个想法:

http://mingw-users.1079350.n2.nabble.com/missing-symbol-ms-vsnprintf-when-linking-with-cross-compiled-library-td7582798.html

似乎 GLFW 库是使用 MinGW64 或 MinGW-W64 构建的。

关于c++ - 静态链接 GLFW 时未定义对 `__ms_vsnprintf' 的引用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29199720/

相关文章:

c++ - 在 C 中通过 const 引用传递

c++ - 如何在 SQL 中存储具有大量(常量)属性的数据

C++ union 内部

c++ - 使用 vector 模板时出现 mingw 链接器错误

Conan 无法找到指定设置、选项和依赖项的某个包

windows - 为什么我的 Qt 4.5 应用程序在 Windows 下打开一个控制台窗口?

xcode - OpenGL深度问题

c++ - 如何在正则表达式中表示 C++ 函数名?

c++ - GLFW 错误 - GLFWwindow* 未被识别为有效参数

c++ - 从使用 glfw 创建的窗口中删除最大化按钮