これは、最新のMinGW64を使用したかなり新しいバニラWin7 64ビットインストールで、 make win32-msysコマンドを呼び出すクリーンな(新しく抽出された)GLFW2.7.5ソースディレクトリにあります。
[A]ライブラリの構築
#1--gcc-c-Iでの警告。-I .. -Wall -mwin32 -O2 -o win32_init.o win32_init.c:
win32_init.c: In function '_glfwPlatformTerminate':
win32_init.c:353:27: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
#2--gcc-c-Iでの警告。-I .. -Wall -mwin32 -O2 -mdll -DGLFW_BUILD_DLL -D_GLFW_NO_DLOAD_GDI32 -D_GLFW_NO_DLOAD_WINMM -o win32_init_dll.o win32_init.c:
win32_init.c: In function '_glfwPlatformTerminate':
win32_init.c:353:27: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
ただし、関連する出力ファイルは。\ lib \ win32:glfw.dll、libglfwdll.a、およびlibglfw.aに作成されます。ただし、後でgccを介してリンクすることは不可能であるため、これらが破損している可能性があるのではないかと心配しています。この投稿の最後の問題と同じ問題です。
[B]例の作成
#3-triangle.exe、pong3d.exe、splitview.exe、mipmaps.exe、gears.exe、boing.exe、wave.exe、heightmap.exeでの警告:
c:/mingw64/x86_64-w64-mingw32/bin/ld.exe: warning: cannot find entry symbol _mainCRTStartup; defaulting to 0000000000401000
ただし、正常にビルドされるlistmodes.exe、mthello.exe、mtbench.exe、およびparticles.exeについてはそうではありません。実際、これらの4つだけがその後ここで適切に実行され、他の4つは出力やエラーなしですぐに終了します(当然、それらの有効なエントリポイントがないため)。
[C]テストの構築
精度.exe、dynamic.exeでの警告:
c:/mingw64/x86_64-w64-mingw32/bin/ld.exe: warning: cannot find entry symbol _mainCRTStartup; defaulting to 0000000000401000
defaults.exeではそのような問題はありません。dynamic.exeの場合、次のエラーが発生します。
C:\Users\roxor\AppData\Local\Temp\cc8hsorn.o:dynamic.c:(.text.startup+0x1c): undefined reference to `__imp_glfwGetVersion'
C:\Users\roxor\AppData\Local\Temp\cc8hsorn.o:dynamic.c:(.text.startup+0x62): undefined reference to `__imp_glfwInit'
C:\Users\roxor\AppData\Local\Temp\cc8hsorn.o:dynamic.c:(.text.startup+0xcf): undefined reference to `__imp_glfwOpenWindow'
C:\Users\roxor\AppData\Local\Temp\cc8hsorn.o:dynamic.c:(.text.startup+0x10b): undefined reference to `__imp_glfwSetWindowTitle'
C:\Users\roxor\AppData\Local\Temp\cc8hsorn.o:dynamic.c:(.text.startup+0x118): undefined reference to `__imp_glfwSetWindowSizeCallback'
C:\Users\roxor\AppData\Local\Temp\cc8hsorn.o:dynamic.c:(.text.startup+0x123): undefined reference to `__imp_glfwSwapInterval'
C:\Users\roxor\AppData\Local\Temp\cc8hsorn.o:dynamic.c:(.text.startup+0x14a): undefined reference to `__imp_glfwGetWindowParam'
C:\Users\roxor\AppData\Local\Temp\cc8hsorn.o:dynamic.c:(.text.startup+0x151): undefined reference to `__imp_glfwSwapBuffers'
C:\Users\roxor\AppData\Local\Temp\cc8hsorn.o:dynamic.c:(.text.startup+0x174): undefined reference to `__imp_glfwTerminate'
collect2: ld returned 1 exit status
make[1]: *** [dynamic.exe] Error 1
make[1]: Leaving directory `/c/glfw64/tests'
make: *** [win32-msys] Error 2
後者は、DLLをロードするためのテストプログラムです。必要なライブラリ(.aと.dll)が正しい場所にないだけだと思うかもしれませんが、この時点で、必要なインクルードとライブラリがすべて揃っていることに注意してください(以前のGLFW製のものとまったく同じでした)上記、同じバージョン、同じ警告、同じ出力ファイル)を正しい場所に:
- \ MinGW64 \ x86_64-w64-mingw32 \ libのlibglfwdll.a(libglu32.a、libopengl32.aの隣)
- \ MinGW64 \ x86_64-w64-mingw32 \ include \ GLのglfw.h(gl.h、glaux.h、glu.hの隣)
- \windowsおよび\windows\ system32のglfw.dll(opengl32.dll、glu32.dllの隣)