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

2024-01-10

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

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

我尝试这样做:

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

但这是行不通的。

有什么建议么?


find_package(OpenGL) https://cmake.org/cmake/help/latest/module/FindOpenGL.html将为您找到该包,但它不会将该包链接到目标。

要链接到库,您可以使用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} )

If OpenGL是您的项目的必需品,您可以考虑测试OpenGL_FOUND之后find_package(OpenGL)或使用REQUIRED,这将停止cmake if OpenGL没有找到。

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

  • CMake 文档,目标链接库 https://cmake.org/cmake/help/latest/command/target_link_libraries.html
  • CMake 文档,查找包 https://cmake.org/cmake/help/latest/command/find_package.html
  • CMake 维基:如何找到图书馆 http://www.vtk.org/Wiki/CMake%3aHow_To_Find_Libraries#Using_external_libraries
  • 论坛帖子及解决方案:cmake 和 opengl http://www.qtcentre.org/threads/35407-Cmake-and-opengl-linking-error
  • CMake 教程斯沃斯莫尔教育网 http://www.cs.swarthmore.edu/%7Eadanner/tips/cmake.php

特别是,CMake wiki and cmake and opengl链接应该足以让您正常工作。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在linux中使用CMake和Kdevelop编译GLUT + OpenGL项目? 的相关文章

  • 如何将一个文本文件拆分为多个 *.txt 文件?

    我有一个文本文件file txt 12 MB 包含 something1 something2 something3 something4 有没有办法分开file txt分成 12 个 txt 文件 比方说file2 txt file3 t
  • 奇怪的函数参数名称行为

    我问了一个关于cmake和传递变量的问题here https stackoverflow com questions 14375519 cmake how to write a nice function that passes varia
  • 对于任何真实数据集,数据压缩比的最小可能值是多少

    我在写信ZLIB类似于嵌入式硬件压缩器的 API 它使用 deflate 算法来压缩给定的输入流 在进一步讨论之前 我想解释一下数据压缩率 数据压缩率定义为未压缩大小与压缩大小之间的比率 压缩比通常大于一 这意味着压缩数据通常比未压缩数据小
  • 如何获取与 shell 中的文件名模式匹配的所有文件的总文件大小?

    我正在尝试仅使用 shell 来计算与文件名模式匹配的所有文件 在目录树中 的总大小 以字节为单位 这是我到目前为止所拥有的 find name undo exec stat c s awk 总计 1 END 打印总计 有没有更简单的方法来
  • 使用 ioctl 在 C++ 中以编程方式添加路由

    我编写了简单的 C 函数 添加了新路线 void addRoute int fd socket PF INET SOCK DGRAM IPPROTO IP struct rtentry route memset route 0 sizeof
  • 使用 systemctl 获取 systemd 进程的正常运行时间或停机时间?

    喜欢使用systemctl is active
  • bash 将输出重定向到文件,但结果不完整

    重定向命令输出的问题已经被问过很多次了 但是我有一个奇怪的行为 我使用的是 bash shell debian 版本 4 3 30 1 release 并尝试将输出重定向到文件 但并非所有内容都记录在文件中 我尝试运行的 bin 文件是 l
  • 为什么我会收到此 Android Studio 错误:“使用 -fPIC 重新编译”?

    我正在使用 NDK 18 并使用 x86 64 NDK 独立工具链单独编译静态库 我可以成功链接它 但是当我尝试以一种不平凡的方式访问该库时 我在构建时遇到了许多错误 例如 requires dynamic R X86 64 PC32 re
  • CMake:Fortran 模块和编译顺序

    我有一个大型 Fortran 程序 其中包含许多目录 每个目录都在伪库中单独编译 但仍然存在相互依赖的混乱 因此最终所有伪库都组合在一个可用的库中 我想使用 Fortran 模块 但它非常脆弱 因为我不能依赖自动依赖项检查 并且根据顺序编译
  • LINUX:如何锁定内存中进程的页面

    我有一个 LINUX 服务器 运行一个具有大量内存占用的进程 某种数据库引擎 该进程分配的内存太大 需要将其中一部分换出 换出 我想做的是将所有其他进程 或正在运行的进程的子集 的内存页面锁定在内存中 以便只有数据库进程的页面被换出 例如
  • GLSL memoryBarrierShared() 有用吗?

    我想知道 memoryBarrierShared 的用处 事实上 当我查找屏障功能的文档时 我读到 对于计算着色器中任何给定的静态屏障实例 单个工作组内的所有调用都必须进入该实例 然后才能允许任何调用继续超出该实例 这确保了在给定的屏障静态
  • 如何在线程创建和退出时调用函数?

    include
  • 如何在 Linux 上通过 FTP 递归下载文件夹 [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 Locked 这个问题及其答案是locked help locked posts因为这个问题是题外话 但却具有历史意义 目前不接受新的答案
  • 如何在不使用 IDE 的情况下在 Linux 上运行 Java 项目

    我是 Java 新手 基本上 我开发了一个java项目 其中包含Eclipse中的多个Java包 该项目在我安装了 redhat Linux 的桌面上运行正常 然而 我需要在一个更强大的没有安装X11的Linux服务器 redhat ent
  • 在 docker 中重定向命令输出

    我想为我的服务器做一些简单的日志记录 它是一个在 Docker 容器中运行的小型 Flask 应用程序 这是 Dockerfile Dockerfile FROM dreen flask MAINTAINER dreen WORKDIR s
  • SSH,运行进程然后忽略输出

    我有一个命令可以使用 SSH 并在 SSH 后运行脚本 该脚本运行一个二进制文件 脚本完成后 我可以输入任意键 本地终端将恢复到正常状态 但是 由于该进程仍在我通过 SSH 连接的计算机中运行 因此任何时候它都会登录到stdout我在本地终
  • 相当于Linux中的导入库

    在 Windows C 中 当您想要链接 DLL 时 您必须提供导入库 但是在 GNU 构建系统中 当您想要链接 so 文件 相当于 dll 时 您就不需要链接 为什么是这样 是否有等效的 Windows 导入库 注意 我不会谈论在 Win
  • 如何使用 JSch 将多行命令输出存储到变量中

    所以 我有一段很好的代码 我很难理解 它允许我向我的服务器发送命令 并获得一行响应 该代码有效 但我想从服务器返回多行 主要类是 JSch jSch new JSch MyUserInfo ui new MyUserInfo String
  • 在OpenGL中,我可以在坐标(5, 5)处精确地绘制一个像素吗?

    我所说的 5 5 正是指第五行第五列 我发现使用屏幕坐标来绘制东西非常困难 OpenGL 中的所有坐标都是相对的 通常范围从 1 0 到 1 0 为什么阻止程序员使用屏幕坐标 窗口坐标如此严重 最简单的方法可能是通过以下方式设置投影以匹配渲
  • 使用 WGL 创建现代 OpenGL 上下文?

    我正在尝试使用 Windows 函数创建 OpenGL 上下文 现代版本 基本上代码就是 创建窗口类 注册班级 创建一个窗口 choose PIXELFORMATDESCRIPTOR并设置它 创建旧版 OpenGL 上下文 使上下文成为当前

随机推荐

  • 将 KeyDown 事件(按键)连接到一个 C# (wpf) 字符串

    我有一个磁卡读卡器 它使用键盘输入发送数据 我正在使用 KeyDown 事件来获取此对象 C WPF KeyEventArgs e 我想把我得到的钥匙做成一串 我尝试连接e Key ToString 但这不起作用 我的输入有很多数字和符号
  • 为什么我的 Google Actions Alpha 版本没有出现在 Google Assistant 商店中?

    在我的开发者帐户中 我可以使用模拟器成功测试应用程序 我也成功部署了Alpha版本 等了24小时 但是 那opt in链接不起作用 每次我导航到它时 我都会看到 We can t find what you re looking for a
  • MongoDB - 如何根据部分字符串查找不同的值

    我不确定这是否可能 但我想从 Mongo 不同方法中的 url 获取不同的域名 这是一些示例数据 stuff someValue moreStuff someOtherValue url http mydomain prep com pos
  • django Rest框架中的过滤

    在我的项目中 我使用 django Rest 框架 为了过滤结果 我使用 django filters 后端 有我的代码 模型 py from django db import models class Region models Mode
  • phpMyAdmin 无法在 PHP5.5.8 的 CentOS 6.5 上运行

    我有一台运行 nginx 1 0 15 PHP FPM FastCGI 5 5 8 和 MySQL 5 5 35 的 CentOS 6 5 x64 服务器 我已经安装了 phpMyAdmin 4 1 5 并配置了一个 nginx 虚拟主机
  • Laravel:注册表单打开时会话过期

    我有一个网络应用程序正在以信息亭模式等待笔记本电脑上的用户 有时 注册失败并且用户会看到错误屏幕 我认为是 419 会话已过期 因此 我假设登录屏幕加载两小时后 会话就会过期 我保留了默认值 120 分钟 config session ph
  • 使用 TerminateProcess 终止“mstsc.exe”进程时出现错误代码(5) 访问被拒绝

    我用CreateProcess 使用 mstsc exe 启动 rdp 客户端应用程序的函数 之后 我想终止它 所以我使用TerminateProcess 函数 但它失败 错误代码为 5 如果我用 notepad exe 替换 mstsc
  • 活动管理员允许的参数

    有没有办法从活动管理的 Permit params 块内部判断我是处于创建模式还是编辑模式 当我创建新记录时 我想合并created by和updated by 当我编辑现有记录时 我只想合并updated by 这是我的代码 Active
  • 如何对 Spring @Bean CommandLineRunner 进行单元测试?

    我在一个小型 PoC 中使用 Spring Boot 并且正在尝试测试 Bean 实现 我有这个代码 SpringBootApplication public class Application public static void mai
  • 从R中的alphahull中提取多个多边形

    我正在使用 alphahull 创建地图边界 结果有时是离散的船体 这很好 下面示例中的三个漂亮的集群 我可以使用 igraph 获取离散簇的数量 但我想关闭多边形 并且没有看到将点分配给正确簇的简单方法 我缺少什么 最终我想将对象作为多边
  • MAMP 和 PHP“SSL 操作失败,代码 1”

    EDIT我现在正在出差 iPhone 上的 Stack Exchange 应用程序上只有 SO 因此下面代码中的引号存在一些奇怪的格式 抱歉 我在真实代码中有真实的 两天来我一直在试图解决这个问题 还有一些其他问题 但是 只是想用file
  • Konva 拖拽无需移动拖拽元素

    我的问题是如何拖放形状 但克隆可拖动形状 并将该克隆拖动到可放置形状 我是 Konva 的新手 在查看文档和示例时 我可以找到如何拖放形状 我找到了形状克隆的参考 但我不知道如何做到这一点 如果有人能告诉我方法 我将不胜感激 谢谢 rect
  • 将模型追加到列表中

    我在创建模型列表时遇到问题 假设我已经创建了模型 gt rp lt rpart V41 data learnData method class 如果我直接创建列表 那就可以了 gt ll lt list rp rp rp gt class
  • -webkit-overflow-scrolling touch 不适用于固定元素

    我使用一个额外的样式表 其中包含以下内容来触摸设备 touch overflow x hidden overflow y scroll webkit overflow scrolling touch body overflow x hidd
  • 如何查找文件中特定行的字节位置

    从命令行查找文件中特定行的字节位置的最快方法是什么 e g linepos myfile txt 13 5283 我正在为一个大小为几 GB 的 CSV 编写一个解析器 如果解析器停止 我希望能够从上一个位置恢复 解析器是用 Python
  • 如何与张量流保存的模型预测器并行进行推理?

    张量流版本 1 14 我们当前的设置是使用张量流估计器进行实时 NER 即一次对一个文档进行推理 我们有 30 个不同的字段需要提取 每个字段运行一个模型 因此总共有 30 个模型 我们当前的设置使用 python 多重处理来并行进行推理
  • 如何构建一个累积的任一构建器

    我想为这两个表达式构建一个计算表达式 这很简单 type Result lt TSuccess gt Success of TSuccess Failure of List
  • Linux中实时监控鼠标坐标

    我需要一个 python 编码来在 Linux 中实时监控鼠标坐标 我发现下面的代码运行良好 但是鼠标坐标信息将显示在弹出的 GUI 窗口中 现在我不需要它在 GUI 窗口中显示 只需要将鼠标坐标信息保存到文本文件 日志文件 中 有人可以帮
  • 我可以在Java中更改jpg图像的分辨率吗?

    我有一些在面板中显示的 jpg 文件 不幸的是 它们的尺寸都是 1500x1125 像素 这对于我想要的东西来说太大了 有没有一种编程方式来更改这些 jpg 的分辨率 您可以使用缩放图像Graphics2D方法 来自java awt Thi
  • 如何在linux中使用CMake和Kdevelop编译GLUT + OpenGL项目?

    正如标题所说 我似乎无法使用 OpenGL 和 Glut 构建该项目 我收到 OpenGL 函数的未定义参考错误 我尝试这样做 project testas find package OpenGL find package GLUT add