当前位置: 首页 > 面试题库 >

如何在Linux中使用CMake和Kdevelop编译GLUT + OpenGL项目?

洪飞白
2023-03-14
问题内容

如标题所示,我似乎无法使用OpenGL和Glut构建项目。

我收到OpenGL函数的未定义参考错误。

我试着做:

project(testas)
find_package(OpenGL)
find_package(GLUT)
add_executable(testas main.cpp)

但这是行不通的。

有什么建议么?


问题答案:

find_package(OpenGL) 会为您找到软件包,但不会将软件包链接到目标。

要链接到库,可以使用target_link_libraries(<target> <item>)。此外,您还需要设置include directory,以便链接器知道在哪里寻找东西。这是通过完成的include_directories

一个CMakeLists.txt执行此操作的示例如下所示:

cmake_minimum_required(VERSION 2.8)

project(testas)
add_executable(testas main.cpp)
find_package(OpenGL REQUIRED)
find_package(GLUT REQUIRED)
include_directories( ${OPENGL_INCLUDE_DIRS}  ${GLUT_INCLUDE_DIRS} )

target_link_libraries(testas ${OPENGL_LIBRARIES} ${GLUT_LIBRARY} )

如果OpenGL对于您的项目是必要的,则可以考虑在OpenGL_FOUND之后进行测试,find_package(OpenGL)或使用REQUIREDcmake如果OpenGL找不到则将停止测试。

有关更多信息和更好的示例:

  • CMake 2.8文档,target_link_libraries
  • CMake 2.8文档,find_package
  • CMake Wiki:如何查找库
  • 解决方案论坛帖子:cmake和opengl
  • swarthmore.edu的 CMake教程

特别是CMake wikiand cmake and opengl链接应该给您足够的帮助。



 类似资料:
  • 对于iOS项目的Cmake集成,没有很好的教程。互联网上找到的信息很少,但信息滞后。我有一个C项目,我想为我的iOS项目交叉编译它。我真的不是C和Cmake主题的专家。尽管如此,我还是关注了一个博客,这正是我想要的。 如博客中所述,我使用工具链来执行 Cmake 命令 它生成了<代码>。目录中的xcodeproj。 按照指示,我将生成的Xcode解决方案包含到我的主要iOS项目中,并将C项目添加到

  • 在NetBeans 7.2中,我很难找到如何在Maven项目中使用-Xlint:unchecked进行编译。在Ant项目下,可以通过转到项目属性来更改编译器标志- 有没有办法使用Maven将IDE配置为使用此类标志进行编译?

  • 问题内容: 在NetBeans 7.2中,我很难找到如何在Maven项目中使用-Xlint:unchecked进行编译。在Ant项目下,可以通过转到Project Properties-> Compiling来更改编​​译器标志,但是Maven项目似乎没有任何此类选项。 有什么方法可以使用Maven将IDE配置为使用此类标志进行编译? 问题答案: 我猜您可以在pom.xml中设置编译器参数。请参考

  • 我知道这个问题已经在几个方面被问到,但希望澄清,因为我没有Linux测试,我会把项目发送给谁将使用Linux的人。 问题:有一个有几个库的Netbeans Java项目(请参见pic),我需要压缩并将整个项目发送给某人,并给他们在Linux下编译和打开它的指导。 我读过:Link1、Link2、Link3等等。

  • 问题内容: 是否有可能编译项目在 32位 与和一对 64位 系统?可能是,但是我该怎么做呢? 当我以“无知”的方式尝试它时,没有设置任何参数/ flags / etc,只是设置在其中查找链接的库似乎忽略了它,而只查看名为 lib64的 子目录。 问题答案:

  • 问题内容: 调试时,我会收到一条警告消息,说明异常-我如何设置在netbeans中使用-g进行编译? 谢谢 问题答案: 据我所知,您 自己的 代码是用调试信息编译的。但是,Java运行时库 不是 。 请仔细检查您看到此消息的位置是否在您自己的代码中,而不是在运行时库中。