2012-10-14 129 views
4

我想學習GLFW的OpenGL,但我遇到了一些問題。用MinGW設置GLFW

這是我的main.cpp:

#include <GL/glfw.h> 

int main() 
{ 
    glfwInit(); 
    glfwSleep(1.0); 
    glfwTerminate(); 
} 

這是我的項目的文件夾結構:

Project 
+- glfw.dll 
+- main.cpp 

這是我提取GLFW文件:

MinGW 
+- include 
| +- GL 
|  +- glfw.h 
+- lib 
    +- libglfw.a 
    +- libglfwdll.a 

這是我如何嘗試構建程序:

g++ main.cpp -o main.exe -lglfwdll 

這些都是我得到的錯誤:

C:\Users\Dark\AppData\Local\Temp\cc0ZgTVp.o:main.cpp:(.text+0xf): undefined reference to `_glfwInit' 
C:\Users\Dark\AppData\Local\Temp\cc0ZgTVp.o:main.cpp:(.text+0x25): undefined reference to `_glfwSleep' 
C:\Users\Dark\AppData\Local\Temp\cc0ZgTVp.o:main.cpp:(.text+0x2a): undefined reference to `_glfwTerminate' 
collect2.exe: error: ld returned 1 exit status 

我缺少的東西?

+0

使用大L選項指定庫所在的路徑,例如'g ++ ... -L/path/to/lib'也記住MinGW使用Visual Studio中的一組不同的ABI,所以請確保您爲MinGW使用的所有庫都是爲MinGW編譯的。 – Ken

+0

我已經嘗試了很多文件夾-L,包括'D:\ Dropbox \ C++ \ Untitled',其中glfw.dll位於,但沒有成功,並且我下載的.zip文件有一個單獨的'lib-mingw'文件夾,所以我認爲這些是正確的圖書館。 – Darkwater

+0

codeblocks在Windows下使用MinGW,所以我想你可以解決你的問題只是閱讀這個http://stackoverflow.com/questions/7856648/glfw-and-codeblocks – Ken

回答

3

根據您的環境下載二進制文件here

Project 
+- glfw3.dll (You can put it in System32 or SysWOW64 instead.) 
+- main.cpp 

MinGW 
+- include 
| +- GLFW 
|  +- glfw3.h 
+- lib 
    +- libglfw3.a 
    +- libglfw3dll.a (Renamed from glfw3dll.a) 

g++ -c main.cpp 
g++ -o main.exe main.o -lglfw3dll -lopengl32 
+3

有沒有人用MingW預包裝GLFW,所以我們不必打擾?如果是這樣的話,這應該會增加可以嘗試使用OpenGL的程序員的數量。看在上帝的份上,它的2014和Windows仍然沒有提出一個標準化的軟件包安裝機制。 –