2016-12-08 4 views
1

참고 : 예, GLEW_STATIC을 지정했습니다.GLEW 연결 문제로 __imp_glGetIntegerv를 찾을 수 없습니다.

새로운 프로젝트에서 사용하기 위해 glew를 설치하기 전에이 로데오를 거쳤지만 현재 프로젝트에서 glew 2.0을 사용 중이므로 링크 오류가 발생하고 있습니다. 나는 리눅스 인스턴스에서 소스를 생성하고 이것을 다음과 같이 사용했다.

#include "Renderer.h" 

#include <windows.h> 
#include "GL/glew.h" 
#include "Logger.h" 

void Renderer::init(void* windowHandle) { 
    Logger logger("Renderer::init"); 

    GLenum result = glewInit(); 
    if (result != GLEW_OK) { 
     LOG(logger) << "Failed to run glew init with error: " << result; 
    } 
} 

이 함수는 네임 스페이스 렌더러에서 선언하고 여기에서 정의하는 함수입니다. 관련성은 내가 단지 glewInit()으로 전화한다는 것입니다. 생산

링킹 오류는 다음과 같습니다

Error LNK2019 unresolved external symbol __imp_glGetIntegerv referenced in function glewContextInit 
Error LNK2019 unresolved external symbol __imp_glGetString referenced in function glewContextInit 
Error LNK2019 unresolved external symbol __imp_wglGetCurrentDC referenced in function wglewInit 
Error LNK2019 unresolved external symbol __imp_wglGetProcAddress referenced in function wglewInit 

여기에 일반의 차이는, "아니오 선언 기능이 정의되어 있습니다"오류의 유형이 선택한 네 가지가 누락 유일한 사람이다. 일반적으로 __imp_ 태그가 첨부되어 동적 라이브러리가 링크 될 것으로 예상한다는 것을 나타내므로 무언가가 생성 된 파일의 오류 일 수 있다고 알려줍니다. 누구든지 연결 고리에이 문제가 발생 했습니까?

답변

3

물론 저녁 시간이 지나면 게시 한 후 10 분 후에 답을 찾을 수 있습니다. 난 꽤 오랫동안이 일을하지 않았으므로 win32는 여전히 OpenGL32.lib를 포함해야한다는 것을 잊었습니다. 왜냐하면 윈도우에 포함 된 opengl 1.0 구현에서 사용해야하는 glGetIntegerv 버전 (그리고 다른 함수들)이 포함되어 있기 때문입니다. 모든 확장 기능처럼 드라이버에서 쿼리하는 대신