2012-02-22 65 views
1

我想编写一个简单的SDL OpenGL应用程序,Codeblocks是我使用的IDE。 当我创建一个新的OpenGL项目时,它编译得很好,但是如果我尝试使用SDL头中的函数,则会出现“未定义的参考错误”。这同样适用于其他方向,如果我创建一个新的SDL的项目,我可以使用SDL的功能没有问题,但我得到一个“未定义引用错误”为OpenGL函数...在Ubuntu下与SDL和OpenGL链接

注:

  • 我使用Ubuntu 11.10
  • 我已经安装了SDL和OpenGL软件包
+0

我不知道codeblocks。也就是说,如果它有一个地方可以添加链接器和/或编译器标志,则将所有'-l,-L和-I'标志从一个项目复制到另一个项目。在OpenGL项目设置中的某处,您可能会发现类似于“-lglut -lGL -lGLU”的内容。 '-l'标志表示要链接的库。 '-L'将目录添加到这些库的搜索路径。 '-I'将目录添加到编译器搜索包含头文件的位置,但听起来这不是你的问题。 – 2012-02-22 21:15:37

回答

2

您需要添加正确的库。标题只是给编译器排序一个索引。但是你需要告诉链接器哪些库实际引入。你应该在构建设置中找到链接器选项。您需要SDL + OpenGL的下列库

  • libGL.so(-lGL链接器开关)
  • libSDL.so(-lSDL链接器开关)

您可能还需要libGLU.so如果你”重新使用glu ...功能。

+0

谢谢,这实际上有帮助!没有更多的链接器错误 – 2012-02-22 21:13:30

2

询问pkg-config是获得编译和链接SDL和Mesa的GL + GLU所需的特定标志和选项的最佳选择。 (一些GL实现可能不会传送.pc文件,但仍应在可用的位置使用它们。)