使用shared_ptr和glutInit会导致分段错误

2024-01-10

经询问this https://stackoverflow.com/questions/33855611/defining-shared-ptr-causes-segfault-cmake在我尝试了很多东西并发现问题与 glutInit 有关之前。采取以下代码示例: 主程序

#include <iostream>
#include <memory>
#include<GL/glut.h>
using namespace std;
int main(int argcp, char **argv)
{
    shared_ptr<double> abc;
    glutInit(&argcp,argv);
    cout<<"Hello!"<<endl;
    return 0;
}

编译为:

g++ -std=c++11 -g -Wall -o appx main.cpp -lGL -lGLU -lglut

使用 g++ 5.2.1、ubuntu 15.10 导致可执行文件立即崩溃(没有“Hello!”输出)并出现段错误

只是注释掉该行

shared_ptr<double> abc;

将修复崩溃。

由于我想在项目中使用 shared_ptr 和 glut,我想知道如何修复此问题或导致崩溃的原因。

Edit 1:GDB 跟踪:

#0  0x0000000000000000 in ?? ()
#1  0x00007ffff33fb6fd in init () at dlerror.c:177
#2  _dlerror_run (operate=operate@entry=0x7ffff33fb0e0 <dlsym_doit>,args=args@entry=0x7fffffffde00) at dlerror.c:129
#3  0x00007ffff33fb148 in __dlsym (handle=<optimized out>, name=optimized out>) at dlsym.c:70
#4  0x00007ffff6fa2e1e in ?? () from /usr/lib/nvidia-352/libGL.so.1
#5  0x00007ffff6f4db47 in ?? () from /usr/lib/nvidia-352/libGL.so.1
#6  0x00007ffff7de957d in call_init (l=0x7ffff7fc59c8,argc=argc@entry=1,         argv=argv@entry=0x7fffffffdf58, env=env@entry=0x7fffffffdf68)at dl-init.c:58
#7  0x00007ffff7de96cb in call_init (env=<optimized out>, argv=<optimized out>, argc=<optimized out>, l=<optimized out>) at dl-init.c:30
#8  _dl_init (main_map=0x7ffff7ffe188, argc=1, argv=0x7fffffffdf58, env=0x7fffffffdf68) at dl-init.c:120
#9  0x00007ffff7dd9d0a in _dl_start_user () from /lib64/ld-linux-x86-64.so.2
#10 0x0000000000000001 in ?? ()
#11 0x00007fffffffe2c8 in ?? ()
#12 0x0000000000000000 in ?? ()

正如评论中所发布的,该问题与发布的问题类似here https://stackoverflow.com/questions/31579243/segmentation-fault-before-main-when-using-glut-and-stdstring.

解决方案是添加:

 -lpthread

到编译器标志! 多谢!

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

使用shared_ptr和glutInit会导致分段错误 的相关文章

随机推荐

  • 在 jQuery 中创建一个更改图像的间隔?

    我有一个像这样的工作脚本 jQuery document ready function video thumb img bind mouseover function var new this attr src replace defaul
  • 如何从一个类访问另一个类的变量值?

    我想从一个类访问另一个类的字符串 我使用的属性方法如下 Myclass cs public class MyClass private string user public string user get return this user
  • 移动的对象没有相同的地址[重复]

    这个问题在这里已经有答案了 我认为一个物体是moved从一种绑定到另一种绑定仅仅意味着对象位本身保持不变 只是程序源使用不同的绑定 标识符 来引用它 use std fmt struct Person name String age u8
  • 动态禁用和启用单选按钮

    我正在创建一个简单的 DISC 配置文件测试 其中每个问题都有 8 个单选按钮 如果我选中伟大的 M 单选按钮 伟大的 L 单选按钮将被禁用并且无法选择 您必须选择其他类似的强大 善良或勇敢 表格看起来像这样 我正在尝试使用 jQuery
  • 使用 do-while 循环测试输入是否为整数且大于(两个条件) - Java

    我需要用户输入大于 10 的整数 这是我的代码 import java util program uses class Scanner public class Tests public static void main String ar
  • 为 4.70 或 5.0 组件配置 Blackberry Eclipse 插件

    我正在寻求配置 Blackberry 开发环境的帮助 事实上 这是一个相当令人沮丧的过程 黑莓网站没什么用 事实证明 在已移动的链接 假定的细节和过时的文档之间 黑莓的开发很难取得任何进展 唷 现在我的咆哮结束了 这是我的问题 我终于让 E
  • 使用父级获取可绘制资源

    当我定义样式时 它可以从父样式继承 例如 现在我想对可绘制资源执行相同的操作 如下所示
  • Qt 样式表。背景颜色,是的。背景图像,NO

    这是样式表的一个奇怪问题 我有一个窗口 QWidget 类的子窗口 我对其应用样式表 以理想地将整个窗口的背景更改为带有重复 x 和重复 y 的图像 并将其平铺 样式表 管道 有效 如果我使用 背景颜色 并将其设置为红色 则整个窗口将被漆成
  • 使用robotframework-selenium时如何测试空白文本字段?

    将 robotsframework seleniumlibrary 与 TSV 文件一起使用时 如何为文本字段指定空白 空值 例如 我有以下内容 Textfield Value Should Be identifier name1 Chri
  • MySQL 行校验和

    是否可以选择表中的整行并获取校验和 我正在寻找一种方法来告诉我的代码仅在至少一条记录已更改时才更新数据 从数据更改跟踪的角度来看 它将帮助我缩小历史表中记录的许多更改的规模 您可以结合MD5 https dev mysql com doc
  • 如何在 JSP 中绑定动态字段列表

    我正在构建一个用于输入足球比赛结果的 JSP 页面 我得到了一份未解决的游戏列表 我想将它们列出如下 team1 vs team4 hidden field game id input field for home goals input
  • 从资产文件夹复制数据库[重复]

    这个问题在这里已经有答案了 我正在创建一个使用现有 sqlite 数据库的字典应用程序 我已将数据库放置在资产文件夹中 并在应用程序首次启动时使用以下代码来复制数据库 我借用了这个想法this http www reigndesign co
  • Android 拒绝来电

    在我的android项目 目标sdk版本23 中 我想拒绝来电 我知道对此有很多疑问 特别是 1 如何将 com android internal telephony ITelephony 导入到 Android 应用程序 https st
  • 找出给定数据集中每列缺失值的百分比

    import pandas as pd df pd read csv https query data world s Hfu PsEuD1Z yJHmGaxWTxvkz7W b0 percent 100 len df loc df isn
  • 将 JavaScript 转换为 Java [关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 有没有好的方法将JavaScript
  • 如何使用 jQuery 检查单选按钮?

    我尝试使用 jQuery 检查单选按钮 这是我的代码
  • 如何解决 SystemError: _internal 初始化失败而不引发异常?

    Problem 我编写了一个代码 将一些历史数据作为输入 假设数据集有一个timeseries格式 我正在尝试进行回归并找到预测变量 Code 对于我的项目 我有四个文件 my project py utilities py plotter
  • require.js POST 请求 spotify Web api 返回“解析 json 时出错”

    根据Spotify Web API 创建播放列表 https developer spotify com web api create playlist 一旦授权成功 带有 access token 和一些其他参数的 POST 应该为用户创
  • 多次检测到碰撞。

    我正在制作一个飞扬的小鸟游戏 当我的鸟经过每堵墙 收集一枚硬币时 我似乎遇到了问题 有2个问题 1 收集后游戏会滞后一毫秒 2 我的鸟似乎每次都会发生 2 次甚至 3 次碰撞 得分为 2 或 3 我无法理解这一点 我的鸟是一个 5 纹理动画
  • 使用shared_ptr和glutInit会导致分段错误

    经询问this https stackoverflow com questions 33855611 defining shared ptr causes segfault cmake在我尝试了很多东西并发现问题与 glutInit 有关之