我意識到這個問題已被問到很多倍在StackOverflow和其他網站;在回顧這些資源後,我仍然處於虧損狀態。OpenGL GLFW:未定義引用'glfwInit'
我只是試圖讓我的機器上的OpenGL(Windows 7 64位)與GLFW一起工作。
我遇到的問題與許多其他人一樣:我得到單數鏈接器錯誤:「未定義引用'glfwInit'。」我試圖編譯的代碼是最簡單的(在一個文件Test.cpp中)。
#include <iostream>
#include <GLFW/glfw3.h>
int main()
{
std::cout << "hello world" << std::endl;
glfwInit();
return 0;
}
我使用一個簡單的生成文件以試圖編譯:
Test: Test.o
g++ -o Test -L./lib -lglew32 -lglfw3 -lopengl32 -lglu32 -lgdi32 Test.o
Test.o: Test.cpp
g++ -I./include -c Test.cpp
其他信息:
*使用克++編譯(MINGW32)
* lib文件夾包含glfw3.dll,libglfw3 .a和libglfw3dll.a(從GLFW網站下載的Win32版本 - Windows預編譯庫)
* include文件夾包含一個名爲GLFW的文件夾,其中包含glfw3.h和glfw3native.h(來自下載的GLFW - include文件夾)
我曾嘗試:
*從GLFW
使用64位版本*使用的IDE(Eclipse中,VS)
*在建議GLFW Undefined References
*在What is an undefined reference/unresolved external symbol error and how do I fix it?建議(交換鏈接參數順序)
*建議在OpenGL with Eclipse CDT + MinGW + GLEW + GLFW: Undefined References
*試圖使用CMake自己編譯庫,但沒有看到在該進程中創建的任何.a,.lib或.dll文件。
請讓我知道,如果額外的信息會有所幫助。
我的建議是:而不是使用部分路徑(-L./lib),使用完整路徑 – Amadeus
@Amadeus:感謝您的建議。給它一個鏡頭,但似乎沒有任何改變(似乎鏈接器能夠正確定位所有庫 - 如果無法找到glfw3,它會給出不同的錯誤)。 –