2016-01-13 328 views
0

我想通了我做了什么。这是我正在使用的图书馆之一。它有一个_ms__vsnprintf的引用,它没有在其中定义。我删除了该文件并编译了我的程序。谢谢你的帮助。 为了将来的参考,文件是libglfw3.a“Undefined reference to _ms_vsnprintf”

如何修复错误“未定义的_ms_vsnprintf”?我只看到另外一篇文章,但这并没有解决我的问题。我使用的是Windows 8,Code :: Blocks和MinGW。这是我的代码。

#define __LCC__ 
#define GLEW_STATIC 
#define GLFWAPI __declspec(dllimport) 
#include <stdio.h> 
#include <stdlib.h> 
#include <GL/glew.h> 
#define GLFW_INCLUDE_GLU 
#include <GL/glfw3.h> 
#include <glm/glm.hpp> 
using namespace glm; 
int main() { 
if(!glfwInit()) { 
    fprintf(stderr, "Failed to initialize GLFW\n"); 
    return -1; 
} 
glfwWindowHint(GLFW_SAMPLES, 4); 
glfwWindowHint(GLFW_CONTEXT_VERSION_MAJOR, 3); 
glfwWindowHint(GLFW_CONTEXT_VERSION_MINOR, 3); 
glfwWindowHint(GLFW_OPENGL_FORWARD_COMPAT, GL_TRUE); 
glfwWindowHint(GLFW_OPENGL_PROFILE, GLFW_OPENGL_CORE_PROFILE); 

GLFWwindow* window; 
window = glfwCreateWindow(600, 800, "OpenGL Window", NULL, NULL); 

if(window == NULL) { 
    fprintf(stderr, "OpenGL Couldn't open the window.\n"); 
    glfwTerminate(); 
    return -1; 
} 

glfwMakeContextCurrent(window); 
glewExperimental=true; 
if (glewInit() !=GLEW_OK) { 
    fprintf(stderr, "Failed to start GLEW.\n"); 
    return -1; 
} 
} 

下面是从代码:: Blocks的

-------------- Build: Debug in opengltest (compiler: GNU GCC Compiler)--------------- 

mingw32-g++.exe -lglfw3 -Wall -g -I..\..\MiniGW\lib\lib-mingw-w64 -c "D:\Programs\C PROGRAMS\opengltest\main.cpp" -o obj\Debug\main.o 
mingw32-g++.exe -L..\..\MiniGW\lib\lib-mingw-w64 -L..\MiniGW\lib -o bin\Debug\opengltest.exe obj\Debug\main.o -lglfw3 -lglfw3 -lopengl32 -lgdi32 -lglu32 ..\..\MiniGW\lib\Release\Win32\glew32s.lib ..\..\MiniGW\lib\lib-mingw-w64\glfw3dll.a ..\..\MiniGW\lib\lib-mingw-w64\libglfw3.a ..\..\MiniGW\lib\libglu32.a ..\..\MiniGW\lib\libopengl32.a 
Warning: corrupt .drectve at end of def file 
..\..\MiniGW\lib\lib-mingw-w64/libglfw3.a(init.c.obj):init.c:(.text+0x49): undefined reference to `__ms_vsnprintf' 
collect2.exe: error: ld returned 1 exit status 
Process terminated with status 1 (0 minute(s), 13 second(s)) 
1 error(s), 1 warning(s) (0 minute(s), 13 second(s)) 
+0

你试过的东西没有奏效吗?据我所知,预编译的glfw库与mingw32不兼容。您是否尝试切换到mingw64或MinGW-W64? – BDL

+0

我确实发现我做错了什么。我现在正在更新这个问题。 –

回答

-1

生成日志我编辑我的回答这个问题。 删除libglfw3.a修复它。

相关问题