好吧,GLFW 有一个 CMake 构建系统。因此,您可以导航到您的 GLFW 源代码并执行以下操作来构建示例“boing”:
C:\glfw-3.1>mkdir build
C:\glfw-3.1>cd build
C:\glfw-3.1\build>cmake -G "CodeBlocks - MinGW Makefiles" ..\
-- The C compiler identification is GNU 4.8.3
-- Check for working C compiler: C:/winbuilds/bin/gcc.exe
-- Check for working C compiler: C:/winbuilds/bin/gcc.exe -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Found OpenGL: opengl32
-- Looking for include file pthread.h
-- Looking for include file pthread.h - found
-- Looking for pthread_create
-- Looking for pthread_create - found
-- Found Threads: TRUE
-- Found Doxygen: C:/Work/env/doxygen-1.8.8/bin/doxygen.exe (found version "1.8.8")
-- Performing Test _GLFW_HAS_DEP
-- Performing Test _GLFW_HAS_DEP - Success
-- Performing Test _GLFW_HAS_ASLR
-- Performing Test _GLFW_HAS_ASLR - Success
-- Performing Test _GLFW_HAS_64ASLR
-- Performing Test _GLFW_HAS_64ASLR - Failed
-- Using Win32 for window creation
-- Using WGL for context creation
-- Configuring done
-- Generating done
-- Build files have been written to: C:/Users/Brian.sidebotham/Desktop/glfw-3.1/glfw-3.1/build
C:\glfw-3.1\build>mingw32-make boing VERBOSE=ON
在构建 GFLW 本身的一些初始输出后,您将获得“boing”示例的构建命令,尤其是链接命令:
C:\winbuilds\bin\gcc.exe -mwindows -Wl,--whole-archive CMakeFiles\boing.dir/objects.a -Wl,--no-whole-archive -o boing.exe -Wl,--out-implib,libboing.dll.a -Wl,--major-image-version,0,--minor-image-version,0 ..\src\libglfw3.a -lglu32 -lopengl32 -lkernel32 -luser32 -lgdi32 -lwinspool -lshell32 -lole32 -loleaut32 -luuid -lcomdlg32 -ladvapi32
因此,这就是您要为静态库模仿的内容。如果您想要链接到 DLL,请执行相同操作,但在使用 CMake 进行配置时包含 -DBUILD_SHARED_LIBS=ON 并且您会获得以下链接:
C:\winbuilds\bin\gcc.exe -mwindows -Wl,--whole-archive CMakeFiles\boing.dir/objects.a -Wl,--no-whole-archive -o boing.exe -Wl,--out-implib,libboing.dll.a -Wl,--major-image-version,0,--minor-image-version,0 ..\src\glfw3dll.a -lglu32 -lopengl32 -lkernel32 -luser32 -lgdi32 -lwinspool -lshell32 -lole32 -loleaut32 -luuid -lcomdlg32 -ladvapi32
如果您还有其他问题,请告诉我们。这些示例对我来说效果很好。