我想编写一个简单的SDL OpenGL应用程序,Codeblocks是我使用的IDE。 当我创建一个新的OpenGL项目时,它编译得很好,但是如果我尝试使用SDL头中的函数,则会出现“未定义的参考错误”。这同样适用于其他方向,如果我创建一个新的SDL的项目,我可以使用SDL的功能没有问题,但我得到一个“未定义引用错误”为OpenGL函数...在Ubuntu下与SDL和OpenGL链接
注:
- 我使用Ubuntu 11.10
- 我已经安装了SDL和OpenGL软件包
我想编写一个简单的SDL OpenGL应用程序,Codeblocks是我使用的IDE。 当我创建一个新的OpenGL项目时,它编译得很好,但是如果我尝试使用SDL头中的函数,则会出现“未定义的参考错误”。这同样适用于其他方向,如果我创建一个新的SDL的项目,我可以使用SDL的功能没有问题,但我得到一个“未定义引用错误”为OpenGL函数...在Ubuntu下与SDL和OpenGL链接
注:
您需要添加正确的库。标题只是给编译器排序一个索引。但是你需要告诉链接器哪些库实际引入。你应该在构建设置中找到链接器选项。您需要SDL + OpenGL的下列库
-lGL
链接器开关)-lSDL
链接器开关)您可能还需要libGLU.so如果你”重新使用glu ...功能。
谢谢,这实际上有帮助!没有更多的链接器错误 – 2012-02-22 21:13:30
询问pkg-config是获得编译和链接SDL和Mesa的GL + GLU所需的特定标志和选项的最佳选择。 (一些GL实现可能不会传送.pc文件,但仍应在可用的位置使用它们。)
我不知道codeblocks。也就是说,如果它有一个地方可以添加链接器和/或编译器标志,则将所有'-l,-L和-I'标志从一个项目复制到另一个项目。在OpenGL项目设置中的某处,您可能会发现类似于“-lglut -lGL -lGLU”的内容。 '-l'标志表示要链接的库。 '-L'将目录添加到这些库的搜索路径。 '-I'将目录添加到编译器搜索包含头文件的位置,但听起来这不是你的问题。 – 2012-02-22 21:15:37