2012-02-08 4 views
3

GLEW를 내 프로그램과 올바르게 연결할 수 없습니다.OpenGL/GLEW : 해결되지 않은 외부 _glewInit

내 프로젝트에서 올바른 경로를 가지고있다. (나는 3 배 검사했다.) x86 라이브러리 (모두 4-the -s, -mxs 등)와 x64 라이브러리를 사용하여 처음부터 빌드를 시도했다.

속성에서 프로젝트를 구성하는 대신 #pragma 지시문을 사용해 보았습니다.

정적 라이브러리로 사용하려고하므로 DLL이 필요하지 않습니다.

또한 GLEW_STATIC이 정의되어 있습니다. 빌드 지침에 조언되어 있습니다.

오류 메시지 :

OGLInit.obj : 오류 LNK2019 : 확인되지 않은 외부 기호 _glewInit 0 함수에서 참조 @ "BOOL __stdcall vexal :: OGLStartup (무효)" (OGLStartup @ vexal @@ YG_NXZ)

저는 심지어 dumpbin을 사용하여 initGlew가 있는지 확인했습니다. 그것은, 그리고 그것은 외부입니다.

lib도 찾았습니다.

검색 C : \ 사용자 제이크 \ 문서 \ \ Vexal2 \ vexal \ vc9_x86 \ lib 디렉토리 \ 디버그 \ GLEW.lib : 여기 아이디어가 부족했습니다

. 어떤 도움이 필요합니까?

+0

'가져 오기'라이브러리가 아닌 정적 glew 라이브러리에 연결되어 있는지 확인하십시오 (사실은 dll에 대한 프록시 역할을합니다)? – KillianDS

+0

예. glew_static 프로젝트를 사용하여 다시 작성했습니다. – Qix

답변

1

문제는 호출 규칙입니다. __cdecl 대신 __stdcall으로 호출 규칙을 변경하고, GLFW 코드에서 _glfwTerminate_atexit(void)을 __cdecl로 변경 한 다음 작성했습니다.

고정!

1

옙. glew_static 프로젝트를 사용하여 다시 작성했습니다.

그 프로젝트를 구축했다고해서 그것이 이라는 것을 의미하는 것은 아닙니다.입니다.

C : \ 사용자 제이크 \ 문서 \ \ Vexal2 \ vexal \ vc9_x86 \ lib 디렉토리 \ 정적 GLEW의 라이브러리가 아닌 디버그 \ GLEW.lib

. 이것이 GLEW의 DLL 버전에 대한 가져 오기 라이브러리입니다. 정적 GLEW 라이브러리는 GLEW32s.lib입니다. 저것에 연결하십시오.

+0

좋아, 그 도서관했다. 솔루션 디렉토리뿐만 아니라 프로젝트 디렉토리와 디버그 디렉토리에도 DLL을 추가했습니다. 여전히 같은 오류가 발생합니다. – Qix

+0

DLL에 연결하지 않아야합니다. DLL 버전이 아닌 * 정적 * GLEW를 빌드하고 있습니다. GLEW를 DLL로 사용하려면'GLEW_STATIC' 정의를 가져와야합니다. –

+0

그게 내가 뭘했는지 _ _ _ 나는 프로젝트에서 GLEW_STATIC을 정의하고 GLEW를 산출했다.lib (내가 말한대로). – Qix