我已經使用glfw3編寫了一個簡單的程序,我相信我已經鏈接了適用的(靜態)庫並正確地包含了頭文件。無法編譯C++(使用GLFW)
下面是我的命令行輸出:
23:20:58 **** Incremental Build of configuration Debug for project Void ****
Info: Internal Builder is used for build
g++ -L../lib -static -o Void Main.o -lglfw3 -lgdi32 -lglew32 -lopengl32
Main.o: In function `ZN4MainC2Ev':
G:\eclipse\CPP WorkSpace\Void\Debug/../Main.cpp:15: undefined reference to `glfwInit'
G:\eclipse\CPP WorkSpace\Void\Debug/../Main.cpp:16: undefined reference to `glfwCreateWindow'
G:\eclipse\CPP WorkSpace\Void\Debug/../Main.cpp:18: undefined reference to `glfwCreateWindow'
G:\eclipse\CPP WorkSpace\Void\Debug/../Main.cpp:20: undefined reference to `glfwDestroyWindow'
collect2.exe: error: ld returned 1 exit status
23:20:59 Build Finished (took 205ms)
我一直在尋找所有谷歌和計算器,我必須失去了一些東西。我的圖書館可能是32位,我試圖編譯爲64位,但我不知道如何檢查這一點。
另外,你會注意到我已經包含了glew頭文件。如果我調用包含在其中的函數,它們被定義並且不會導致任何問題。任何幫助都非常感謝。
更新: 嘗試使用glfw(libglfw3.a)的32位庫構建後,出現新錯誤。 ../lib\libglfw3.a(init.c.obj):init.c:(.text+0x49):未定義參考`__ms_vsnprintf」
我m在Windows 7上使用mingw。我會給Linux二進制文件一個嘗試,讓你知道發生了什麼。感謝您的答覆。 – subtlepseudonym
我使用cmake編譯了GLFW,並且包含了它的glfw3.h文件。該項目仍然不編譯並列出glfw3.h中的方法爲未定義的(如上面的編譯器輸出所示)。 – subtlepseudonym
我通過在將它重命名爲libglfw3dll.a後導入glfw3dll.a而得到它。這看起來像一個駭人的解決方案。 – subtlepseudonym