2014-07-26 9 views
0

최근 OpenGL API에서 glGenerateMipmap()과 같은 기능을 특정 OS에서로드해야한다는 것을 알게되었습니다. GLEW는이 목적을 위해 작업을 수행해야하는 래퍼입니다. 그래서 저는 GLEW를 프로젝트에 추가했습니다. 나는 내 코드에서 함수를 컴파일 할 때 그러나, 오류를 제공합니다 glGenerateMipmap (GLEW 사용)에 대한 정의되지 않은 참조

undefined reference to `_imp____glewGenerateMipmap'| 

나는이 지금까지 잘 작동 링커 오류가 있지만, 지금까지 다른 GL 기능이 될 거라 생각 했어요. 사실, 나는이 OpenGL 프로젝트를 잠시 동안 링커 오류없이 작업 해왔다. 이게 버그일까요? Codeblocks 사용, Windows 7 64 비트.

+0

[이 Q & A (마치 http://stackoverflow.com/questions/7549594/opengl-glew-mingw-application-linking-issue)에는 문제에 대한 해결책이 있습니다. 개발 환경의 설정은 당신과 매우 비슷합니다. –

+0

GLEW가 너무 작아서 내 프로젝트에 소스가 번들되어 있습니다. 필자의 주요 작업 플랫폼은 Linux이므로 MinGW 또는 Visual Studio에서 어떤 일이 일어나는지 절대 알지 못하므로 소스 코드를 번들로 묶어서 항상 오류를 연결하는 문제를 해결할 수 있습니다. –

답변

2

1) 여기에서 찾을 수 있습니다 당신이 Glew 의 최신 버전이 있는지 확인하십시오 : 말한 GLEW webpage

, 나는이 프로젝트의 최신 헤더 파일을 포함하여, 그 의미 것을 강조하고자 않는다 프로젝트를 최신 GLEW 라이브러리 버전과 연결하는 것입니다. 당신이 쓴 때문에

내가 당신의 GLEW 라이브러리/헤더 구식이라고 생각하는 이유는 다음과 같습니다에만 기본 오래된 GL을 사용하여 가지고있는 경우

I thought this would be a linker error but ever other gl functions so far works fine.

그러나, 그것은 첫 번째의 기능을 설명합니다 대부분의 경우 버전 1.1 인 openGL 초안, 첫 번째 초안은 OpenGL의 확장 버전 및 이후 버전을 다루지 않습니다.

2) 링크 : CodeBlocks에서 제대로 연결하는 방법 : How to link under codeblocks

+0

글쎄, 내 문제를 해결하는데 도움이되었다. 문제는 매번 glew를 사용할 때마다 모든 include에 GLEW_STATIC을 정의했기 때문입니다. 그래서 실수로 glew.h를 포함 시켰습니다. glew.h에는 전 처리기가 없기 때문에 모든 것을 망쳐 놨습니다. 대신 glew_STATIC을 glew.h에 넣으십시오. 이제 모든 것이 작동합니다. – sgtHale

+0

도움이되어 기쁩니다. :) – Illasera