我意识到这个问题已被问到很多倍在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,它会给出不同的错误)。 –