2012-04-28 2 views
1

먼저 glfwdll.a와 glfw.dll의 64 비트 버전을 만들어야합니다. (그래서 나는 결국 gof glfw 바인딩을 Windows에서 작동시키는 데 성공할 수 있습니다. 리눅스 아래에서 breeeeze!)mingw64에서 GLFW의 Win64 버전을 컴파일하기 전에

나는 glfwdll.a와 glfw.dll의 64 비트 버전을 mingw64, MSYS 및 make 스크립트를 사용하여 컴파일하는 것처럼 보였다. 비록 내가 줄의 몇 가지 오류 메시지를 받았지만 "maincrt 진입 점을 찾을 수 없습니다. 대신 기본값 0xsomehexnumber를 사용합니다." 진입 점은 실행 파일을 참조하며,이 경우 examples 디렉토리에 있습니다.

실제로 대부분은 작동하지 않습니다! 그러나 모든 것은 지어졌다. 다음 실행 파일이 작동합니다 :

listmodes.exe mtbench.exe mthello.exe 및 particles.exe - 나에게 맞는 그래픽 (3d gfx) 예제입니다 (이전 테스트 용 정보를 콘솔에 출력하는 것 창문).

이제 다른 문제는 무엇입니까? 그들은 충돌하지 않으며, 콘솔에 아무 것도보고하지 않습니다 ... 나는 그들을 실행하고, 즉각 조용히 돌아옵니다.

내 GLFW 빌드가 손상 되었습니까? 어떻게 고치는 지? 작동하는 4 가지 예와 그렇지 않은 4 가지 예의 큰 차이점은 무엇입니까?

이것은 상당히 새로운 바닐라 Win7 64 비트 설치입니다. Crapware는 없으며 UAC와 Themes는 모두 꺼져 있습니다. 소프트웨어가 많이 설치되어 있지는 않습니다. NVIDIA GPU 드라이버가 업데이트되었습니다 (GPU Caps Viewer 등이 잘 실행되어 OpenGL이 있습니다).

답변

3

아직 댓글을 달 수있는 권한이 없으므로 답변으로 게시 해 드리겠습니다.

GLFW의 세 가지 버그로 인해 문제가 발생했습니다. 나는 오늘 그것을 고칠 것이고 수정은 GLFW 2.7.6에 포함될 것이다. 그때까지 GLFW Subversion repository의 트렁크를 사용할 수 있습니다.

+0

모든 것이 Go, GLFW 및 Mingw-w64의 최신 릴리스와 함께 훌륭하게 작동합니다. 다시 한 번 감사드립니다! – metaleap

2

OpenGL32.dll, glu32.dll, glut32.dll 등과 같은 DLL 지옥 문제가 발생하지 않도록하려면 이벤트 뷰어 도구를 확인하고 몇 가지 경고 또는 오류가 있는지 확인하십시오. .

"진짜"OpenGL API와 공통점이없는 mtbench와 mthello 만 실행할 수 있기 때문에 이것은 내 생각입니다.

particles.exe에 대한 단서가 없습니다. GLFW는 내부적으로 오류를 확인하고 exit() 루틴을 호출할까요? % errorlevel %도 확인하십시오.

또한 여기 좀 봐 : http://glfw.svn.sourceforge.net/viewvc/glfw/trunk/examples/pong3d.c?revision=1110&view=markup

가! "glfwGetWindowParam (GLFW_OPENED)", 분명히 OpenGL을 이었다는 것을 의미하는이 초기화되지 자동 경우 수도 종료 GameMenu() 함수가있다.

같은 기능은 DLL을 다시 확인, 다시 한번 여기 http://glfw.svn.sourceforge.net/viewvc/glfw/trunk/examples/wave.c?revision=1110&view=markup

종료 플래그 역할을!

나는 당신이 "고급"실수를하지 않아 빌드 과정에서 경험이 있다고 생각하기 때문에 "사용자 수준"에서 우스운 일이 발생할 수 있습니다.

그리고 또 다른 제안 : http://sourceforge.net/projects/glfw/forums/forum/247562/topic/3868944

일부 매개 변수가 당신을 위해 정확하게 작동하지 않을 수 있습니다.

샘플을 "수정"하려면 glfwGetWindowParam 호출을 주석 처리하십시오.

+0

실제로 내 질문은 잘못 선택되었습니다. 실제 문제는 빌드 자체가 의도 한대로 완료되지 않는다는 것입니다. 나는 4 가지 예를 제외한 모든 것에 대해 엔트리 - 심볼 경고를 받는다. 그래서 그들이 작동하지 않는 것은 놀랄 일이 아닙니다. 또한 make 프로세스가 끝날 때 링커 오류가 발생하기 때문에 libs가 빌드 되더라도 시작하기에는 다소 결함이 있습니다. 별도의 스레드 에서이 다음과 GLFW의 추적기에 문제를 제기했다. 그 포인터에도 불구하고, 거기에 유용한 지식을 주셔서 감사합니다! – metaleap

+0

확인. 어쨌든, Win32에서 GCC 풍미로 컴파일/구축하는 것은 언제나 악몽에 가깝습니다 :) cygwin/msys를 좋아하지는 않았습니다. :) –

+0

전반적으로 정말 만족합니다. 그러나 그들이 C interop를 위해 gcc를 선택했기 때문에 - 선택의 여지가 없습니다. 이 부분에 대해서. :) – metaleap

관련 문제