Linux 中的 FreeGLUT 链接问题

2023-11-22

我在跑步Linux 薄荷 14.1 64 位

我已经安装了以下库:

台面通用开发, freeglut3-开发, libglew-dev

通过apt-get tool.

这是我的包含内容,位于我的Main.h file:

#include <cmath>
#include <cstdlib>
#include <iostream>
#include <stdio.h>

#include <GL/glew.h>
#include <GL/glut.h>
#include <time.h> 

我检查了库是否安装正确,它们似乎位于/usr/lib/x86_64-linux-gnu和标题/usr/include/GL

我继续编译我的Main.C具有以下标志的文件:

g++ -Wall -Wextra -Weffc++ -Winit-self -Wmissing-include-dirs -Wswitch-default -switch-enum -Wunused-parameter -Wstrict-overflow=5 -Wfloat-equal -Wshadow -Wc++0x-compat -Wconversion -Wsign-conversion -Wmissing-declarations -Wstrict-null-sentinel -Woverloaded-virtual -Wsign-promo -Werror -pedantic -Wcast-qual -fno-pretty-templates -fmessage-length=80 -fdiagnostics-show-option -g -std=c++0x -pipe -frepo -c  Main.C -o Main.o

Main.o生成时没有任何问题,然后我尝试创建二进制文件:

g++  -I/usr/include -L/usr/lib/x86_64-linux-gnu -lGL -lglut -lGLU -lGLEW -lX11 -lm -lrt -lpng Main.o -o main

并收到以下错误:

Main.o: In function `init()':
/path/to/Main.C:12: undefined reference to `glClearColor'
Main.o: In function `initGLUT(int, char**)':
/path/to/Main.C: undefined reference to `glutInit'
/path/to/Main.C:21: undefined reference to `glutInitDisplayMode'
/path/to/Main.C:24: undefined reference to `glutInitWindowSize'
/path/to/Main.C:25: undefined reference to `glutCreateWindow'
/path/to/Main.C:28: undefined reference to `glutDisplayFunc'
/path/to/Main.C:31: undefined reference to `glutKeyboardFunc'
/path/to/Main.C:34: undefined reference to `glutMouseFunc'
/path/to/Main.C:37: undefined reference to `glutReshapeFunc'
/path/to/Main.C:40: undefined reference to `glutIdleFunc'
Main.o: In function `printFPS()':
/path/to/Main.C:96: undefined reference to `glutGet'
Main.o: In function `reshape(int, int)':
/path/to/Main.C:123: undefined reference to `glutPostRedisplay'
Main.o: In function `getTime()':
/path/to/Main.C:129: undefined reference to `glutGet'
Main.o: In function `idle()':
/path/to/Main.C:141: undefined reference to `glutPostRedisplay'
Main.o: In function `display()':
/path/to/Main.C:148: undefined reference to `glClearColor'
/path/to/Main.C:149: undefined reference to `glClear'
/path/to/Main.C:150: undefined reference to `glFlush'
/path/to/Main.C:151: undefined reference to `glutSwapBuffers'
Main.o: In function `main':
/path/to/Main.C:164: undefined reference to `glutMainLoop'

不过,该程序可以在另一个 Linux 系统上编译和链接。 我可能会错过什么?


您必须最后传递库(在目标文件之后)

g++  -I/usr/include -L/usr/lib/x86_64-linux-gnu Main.o \
  -lGL -lglut -lGLU -lGLEW -lX11 -lm -lrt -lpng -o main

这背后的原因是,链接器仅链接当前未定义的符号。如果在目标文件之前传递库,则没有任何未定义的符号要链接,因此编译/链接将失败。

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

Linux 中的 FreeGLUT 链接问题 的相关文章

  • 在结构中使用 typedef 枚举并避免类型混合警告

    我正在使用 C99 我的编译器是 IAR Embedded workbench 但我认为这个问题对于其他一些编译器也有效 我有一个 typedef 枚举 其中包含一些项目 并且我向该新类型的结构添加了一个元素 typedef enum fo
  • 如何为 Linux 桌面条目文件指定带有相对路径的图标?

    对于我的一个 Linux 应用程序 我有应用程序二进制文件 一个 launcher sh 脚本 针对 LD LIBRARY PATH 和一个 desktop 文件 所有这些都位于同一文件夹中 我想使用图标的相对路径而不是绝对路径 我试过了
  • 在 .gitconfig 中隐藏 GitHub 令牌

    我想将所有点文件存储在 GitHub 上 包括 gitconfig 这需要我将 GitHub 令牌隐藏在 gitconfig 中 为此 我有一个 gitconfig hidden token 文件 这是我打算编辑并放在隐藏令牌的 git 下
  • BitTorrent 追踪器宣布问题

    我花了一点业余时间编写 BitTorrent 客户端 主要是出于好奇 但部分是出于提高我的 C 技能的愿望 我一直在使用理论维基 http wiki theory org BitTorrentSpecification作为我的向导 我已经建
  • HTTPWebResponse 响应字符串被截断

    应用程序正在与 REST 服务通信 Fiddler 显示作为 Apps 响应传入的完整良好 XML 响应 该应用程序位于法属波利尼西亚 在新西兰也有一个相同的副本 因此主要嫌疑人似乎在编码 但我们已经检查过 但空手而归 查看流读取器的输出字
  • OleDbDataAdapter 未填充所有行

    嘿 我正在使用 DataAdapter 读取 Excel 文件并用该数据填充数据表 这是我的查询和连接字符串 private string Query SELECT FROM Sheet1 private string ConnectStr
  • 不同枚举类型的范围和可转换性

    在什么条件下可以从一种枚举类型转换为另一种枚举类型 让我们考虑以下代码 include
  • 堆栈溢出:堆栈空间中重复的临时分配?

    struct MemBlock char mem 1024 MemBlock operator const MemBlock b const return MemBlock global void foo int step 0 if ste
  • 在 ASP.NET 5 中使用 DI 调用构造函数时解决依赖关系

    Web 上似乎充斥着如何在 ASP NET 5 中使用 DI 的示例 但没有一个示例显示如何调用构造函数并解决依赖关系 以下只是众多案例之一 http social technet microsoft com wiki contents a
  • 使用 \r 并打印一些文本后如何清除控制台中的一行?

    对于我当前的项目 有一些代码很慢并且我无法使其更快 为了获得一些关于已完成 必须完成多少的反馈 我创建了一个进度片段 您可以在下面看到 当你看到最后一行时 sys stdout write r100 80 n I use 80覆盖最终剩余的
  • 如何查看网络连接状态是否发生变化?

    我正在编写一个应用程序 用于检查计算机是否连接到某个特定网络 并为我们的用户带来一些魔力 该应用程序将在后台运行并执行检查是否用户请求 托盘中的菜单 我还希望应用程序能够自动检查用户是否从有线更改为无线 或者断开连接并连接到新网络 并执行魔
  • 使用 x509 证书签署 json 文档或字符串

    如何使用 x509 证书签署 json 文档或字符串 public static void fund string filePath C Users VIKAS Desktop Data xml Read the file XmlDocum
  • 链接器错误:已定义

    我尝试在 Microsoft Visual Studio 2012 中编译我的 Visual C 项目 使用 MFC 但出现以下错误 error LNK2005 void cdecl operator new unsigned int 2
  • 通过指向其基址的指针删除 POD 对象是否安全?

    事实上 我正在考虑那些微不足道的可破坏物体 而不仅仅是POD http en wikipedia org wiki Plain old data structure 我不确定 POD 是否可以有基类 当我读到这个解释时is triviall
  • cmake 将标头包含到每个源文件中

    其实我有一个简单的问题 但找不到答案 也许你可以给我指一个副本 所以 问题是 是否可以告诉 cmake 指示编译器在每个源文件的开头自动包含一些头文件 这样就不需要放置 include foo h 了 谢谢 CMake 没有针对此特定用例的
  • 如何将带有 IP 地址的连接字符串放入 web.config 文件中?

    我们当前在 web config 文件中使用以下连接字符串 add name DBConnectionString connectionString Data Source ourServer Initial Catalog ourDB P
  • 混合 ExecutionContext.SuppressFlow 和任务时 AsyncLocal.Value 出现意外值

    在应用程序中 由于 AsyncLocal 的错误 意外值 我遇到了奇怪的行为 尽管我抑制了执行上下文的流程 但 AsyncLocal Value 属性有时不会在新生成的任务的执行范围内重置 下面我创建了一个最小的可重现示例来演示该问题 pr
  • 如何将服务器服务连接到 Dynamics Online

    我正在修改内部管理应用程序以连接到我们的在线托管 Dynamics 2016 实例 根据一些在线教程 我一直在使用OrganizationServiceProxy out of Microsoft Xrm Sdk Client来自 SDK
  • C++ 中类级 new 删除运算符的线程安全

    我在我的一门课程中重新实现了新 删除运算符 现在我正在使我的代码成为多线程 并想了解这些运算符是否也需要线程安全 我在某处读到 Visual Studio 中默认的 new delete 运算符是线程安全的 但这对于我的类的自定义 new
  • 使用.NET技术录制屏幕视频[关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 有没有一种方法可以使用 NET 技术来录制屏幕 无论是桌面还是窗口 我的目标是免费的 我喜欢小型 低

随机推荐

  • 如何从父文件夹或同级文件夹模块访问模块?

    我正在尝试从以下位置访问模块parser rs and another rs in the solve rs 如何包含这些模块并使用 use语句 如果不可能 代码结构应该是什么 这是应用程序文件夹树 app src main rs anot
  • 可空类型之间的转换

    NET 4 0 中是否有一个转换器支持可空类型之间的转换以缩短指令 例如 bool nullableBool GetSomething byte nbyte nullableBool HasValue byte Convert ToByte
  • 为什么我会收到 Can't make a table of more 2^31 elements in R 的错误

    你好我有一个数据框record在8维的R中 有60个变量 缺失值用NA替换 其他值是单词 当我尝试像这样对数据框进行制表时feeds lt table record 我收到一条错误消息 Error in table record attem
  • 如何在多核8节点集群中调度Hadoop Map任务?

    我有一个 仅映射 无缩减阶段 程序 输入文件的大小足以创建 7 个映射任务 我已经通过查看生成的输出 part 000 到 part006 验证了这一点 现在 我的集群有 8 个节点 每个节点有 8 个核心和 8 GB 内存 并在头节点托管
  • 预留实例模式下适用于 Azure 网站的新 Azure 分布式缓存

    Windows Azure 的其他出色新功能 6 月 7 日发布 中似乎缺少的一项功能是在预留实例模式下为网站集群的预留实例定义分布式缓存的能力 截至目前 似乎只能为独立的 Web 角色或辅助角色创建分布式缓存 有谁知道解决方法或知道这是否
  • Java 原语放在栈上还是堆上?

    我只知道非基元 对象 位于堆上 方法位于堆栈上 但是基元变量呢 update 根据答案 我可以说堆可以为给定的对象拥有新的堆栈和堆 鉴于该对象将具有原始变量和引用变量 本地定义的原语将位于堆栈上 但是 如果将原语定义为对象实例的一部分 则该
  • Struts2 从 JSP 访问枚举

    我有以下课程 package com test public class SomeClass public enum COLOR RED BLUE 我想访问的值COLOR我的 JSP 中的枚举 我已经尝试过以下代码 但它不起作用
  • Rspec 模拟:ActiveRecord::AssociationTypeMismatch

    我是 Rspec 新手 正在尝试为用户配置文件设置测试 个人资料属于用户 现在 我与通过用户模型工作的第三方网站进行了 API 集成 但该 API 链接的一些信息包含在配置文件中 因此我在配置文件上有一个 after update 过滤器
  • 两张表具有相同的列,还是一张表具有附加列?

    假设我有两个表 苹果和橙子 它们具有相同的列 只是表名不同 将其变成一个带有附加列 类型 的表 假设它称为 水果 然后存储 苹果 或 橙色 的值 是否有任何优点 缺点 编辑以澄清 创建表苹果 id 整数 权重整数 各种 varchar 25
  • Tomcat 无法找到我的 Servlet 并抛出异常,但为什么呢?

    我正在尝试进入 Java Web 开发 但似乎在 Tomcat 和一个极其简单的 servlet 方面遇到了一个奇怪的问题 每次我尝试加载应用程序时 catalina 日志都会喷出以下内容 Caused by java lang Illeg
  • 计算渐变颜色的最快方法?

    我正在制作一小部分与渐变相关的类型 函数以供将来使用 我想确保至少有两个过程 ColorBetween 和 ColorsBetween 我可能只想获取任意 2 种颜色 ColorsBetween 之间的 TColor 数组 并且我可能只需要
  • AWS SNS 是否将 apns-push-type 和 apns-priority 添加到其 iOS 推送通知标头中?

    根据Apple 的 APN 文档 从 http api 的 iOS 13 客户端开始must发送标头字段apns push type and apns priority否则请求将失败 果然 更新到 iOS 13 Beta 版的用户并没有收到
  • django staticfiles 是否跳过中间件?

    我正在运行 django 1 4 1 应用程序 我没有意识到只是包括django contrib staticfiles into INSTALLED APPS在您的设置中足以获得静态文件settings DEBUG是 True 即您不必手
  • 我的 Ubuntu 系统上有 Python,但 gcc 找不到 Python.h [重复]

    这个问题在这里已经有答案了 我在学校计算机上 所以无法安装任何东西 我正在尝试创建可以在 Python 中运行的 C 代码 看来我找到的所有文章都需要你使用 include
  • 何时使用 RSpec let()?

    我倾向于使用 before 块来设置实例变量 然后我在我的示例中使用这些变量 我最近遇到了let 根据 RSpec 文档 它用于 定义一个记忆辅助方法 该值将在同一示例中的多个调用之间进行缓存 但不会跨示例进行缓存 这与在 before 块
  • this.offset 不是点击函数中的函数

    错误在于 this offset不是一个函数 我将其记录到控制台 它是 li 我点击了元素 所以我很困惑为什么这不起作用 item click function e var this this var topx this offset to
  • 在android中反序列化JSON字符串

    我有如下所示的 JSON 字符串 Status Clear Class br name personA available 1 br name personB available 0 br name personC available 0
  • 高效删除 Django 中孤立的 m2m 对象/标签

    我有两个模型 照片和标签 通过 ManyToManyField 连接 class Photo models Model tags models ManyToManyField Tag class Tag models Model lang
  • 图表 JS 插件可根据值更改线条颜色

    我正在尝试创建一个折线图 其中线条 和点 的颜色取决于所绘制的值 例如 如果该值高于以下阈值 0 115 125 那么颜色将是 green yellow red 分别 该要求与本例中实现的要求几乎相同 https jsfiddle net
  • Linux 中的 FreeGLUT 链接问题

    我在跑步Linux 薄荷 14 1 64 位 我已经安装了以下库 台面通用开发 freeglut3 开发 libglew dev 通过apt get tool 这是我的包含内容 位于我的Main h file include