g++-lglfw3";“未定义引用”; 我试图编译和链接我的C++ GLFW3程序和G++, 这是我写的一个简单的测试程序: #include <GLFW/glfw3.h> #include <iostream> int main() { if (!glfwInit()) std::cout << "glfwInit(); // ERROR" << std::endl; return 0; } #包括 #包括 int main() { 如果(!glfwInit()) std::cout

g++-lglfw3";“未定义引用”; 我试图编译和链接我的C++ GLFW3程序和G++, 这是我写的一个简单的测试程序: #include <GLFW/glfw3.h> #include <iostream> int main() { if (!glfwInit()) std::cout << "glfwInit(); // ERROR" << std::endl; return 0; } #包括 #包括 int main() { 如果(!glfwInit()) std::cout,c++,linker,g++,glfw,C++,Linker,G++,Glfw,使用g++src/main.cpp-lglfw3-pthread-lXrandr-lxf86vm-lXi-lXinerama-lX11-ldl-lXcursor编译对我来说没有任何错误,我不完全理解为什么它需要所有这些额外的库,但它工作得如此好!我最近遇到了同样的错误,在我的机器上,工作的命令行是: gcc -o myprog myprog.c -lglfw3 -lGL -lX11 -lXxf86vm -lpthread -lXrandr -lXi -lXinerama -lXcursor -l

使用
g++src/main.cpp-lglfw3-pthread-lXrandr-lxf86vm-lXi-lXinerama-lX11-ldl-lXcursor编译对我来说没有任何错误,我不完全理解为什么它需要所有这些额外的库,但它工作得如此好!

我最近遇到了同样的错误,在我的机器上,工作的命令行是:

gcc -o myprog myprog.c -lglfw3 -lGL -lX11 -lXxf86vm -lpthread -lXrandr -lXi -lXinerama -lXcursor -lm
                               ^^^^   

还要考虑这取决于您如何编译
glfw3
库(共享或静态,请参见文档中的)您将获得一个
glfw3。因此
免费二进制文件!

您难道没有忘记一些库吗?我不知道,我对linux上的g++不熟悉,我习惯于windows上的visual studio,在那里我可以将glfw3.dll添加到包含和链接路径。我假设将
-lglfw3
添加到g++也做同样的事情。我尝试使用sugges命令进行编译ted在你的链接中,
g++src/main.cpp-lglfw3-lm-lGL-lGLU
,但它仍然给我带来了大量错误。你试过阅读文档吗?因为猜测编程不起作用。我快速浏览了文档,但没有发现任何用处。我注意到添加
-lm-lGL-lGLU
确实降低了大量的错误,所以经过一点修改,我发现这个命令
g++src/main.cpp-lglfw3-pthread-lXrandr-lxf86vm-lXi-lXinerama-lX11-ldl-lXcursor
。按照它的说明来了解如何构建您的软件。仔细深入地研究它。利用我们的时间不能代替进行基础研究!!您需要链接所有这些库,因为您不仅需要链接代码调用的库,还需要链接您链接的库调用的所有库。When一个库需要很多其他库,可以为您找到它们。GLFW支持
pkg config
。在OS X或其他Unix上使用pkg config阅读