小编Dav*_*ner的帖子

glfw3错误:DSO缺少命令行

我最近不得不在我的电脑上重新安装Linux Mint.我重新安装了我的所有库,例如GLFW,并遇到了我以前从未见过的错误.不幸的是,我的google-fu技能似乎没有达到这个错误的标准,因为我找不到任何适用于我的修复程序.旁注:这些程序在我的旧安装上编译得很好,并且它们也可以在我的笔记本电脑上完全编译,该笔记本电脑也运行Linux Mint 17.2.

这是我用来编译的编译语句:

g++ -std=c++11 main.cpp -o out -lGL -lGLU -lglfw3 -lX11 -lXxf86vm -lXrandr -lpthread -lXi
Run Code Online (Sandbox Code Playgroud)

这是终端向我吐出的东西:

/usr/bin/ld: //usr/local/lib/libglfw3.a(glx_context.c.o): undefined reference to symbol 'dlclose@@GLIBC_2.2.5'
/usr/lib/gcc/x86_64-linux-gnu/4.8/../../../x86_64-linux-gnu/libdl.so: error adding symbols: DSO missing from command line
collect2: error: ld returned 1 exit status
Run Code Online (Sandbox Code Playgroud)

所以,如果有人能告诉我为什么我得到这个/或如何修复它将是绝对惊人的!提前感谢您的帮助.

编辑:我已经重新安装Mint两次,以尝试解决这个问题.它每次都会出现.

编辑2:我一直在摆弄,仍然没有找到问题.

c++ linux glfw

9
推荐指数
2
解决办法
2万
查看次数

OpenGL纹理渲染颠倒,模糊

我之前正在开发一款游戏并遇到了一些问题!我用单张图片开始游戏.每个纹理都有自己的文件.我有点意识到我要做多少白痴,并尝试切换到使用包含所有纹理的一张图片(无论如何它们都非常小).现在,出现了一个问题.当加载比原始纹理(10 x 10)更大的图像时,它几乎就像没有使用最近邻大小算法一起显示.我得到的是模糊的图像.它也被翻转......为什么这些问题都发生了?

代码和图片如下.

这是第一个显示包含文本和符号的精灵表.(它很小,100 x 100) http://imgur.com/HU5zEAO.jpg

这是程序运行时我得到的. http://i.imgur.com/HeVPdPy.jpg

这是main.cpp文件

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

#include "spritesheet_class.h"
#include "load_img.h"

GLuint TextSheet;
Spritesheet Test;

void LoadFiles()
{

    GLuint TextSheet = LoadTexture( "davetica.png", 100, 100, 0 );

    Test.SetTex( TextSheet, 100, 100, 10, 10 );

}

void Reshape( int width, int height )
{

    glViewport( 0, 0, (GLsizei)width, (GLsizei)height );
    glMatrixMode( GL_PROJECTION );

    glLoadIdentity();
    glOrtho( 0.0f, width, 0.0f, height, 1.0f, 100.0f );

    glMatrixMode( GL_MODELVIEW );

}

void Display()
{

    glClear( GL_COLOR_BUFFER_BIT );
    glLoadIdentity(); …
Run Code Online (Sandbox Code Playgroud)

c++ opengl textures

3
推荐指数
1
解决办法
7683
查看次数

如何获得Rc或Boxed值的内部值的TypeId,而不是封闭类型的TypeId?

我正在使用关联列表来关联TypeId事件类型和TypeId想要接收它们的人.

当我试图得到它时,无论它TypeId是什么Rc<Any>,它都会给你相同的TypeId(Rc存储一个Any)Any.

#![feature(get_type_id)]

use std::any::*;
use std::rc::Rc;

fn main() {
    let temp: Rc<Any> = Rc::new(13);
    let temp2: &Any = &5;

    assert_eq!(temp.get_type_id(), temp2.get_type_id()); //fails!
}
Run Code Online (Sandbox Code Playgroud)

我怎样才能获得内部TypeId的关联Any

我相信这既Rc<_>实现了Deref特质,也实现了Any特质.这意味着您可以取消引用Rc内部引用中的函数和调用函数.它也意味着它Rc有自己的关联TypeId.我不是在寻找TypeIdRc,我正在寻找TypeId从被解除引用的那个Any.

rust

1
推荐指数
1
解决办法
70
查看次数

为什么`&value.into_something()`仍然会导致移动值?

我很难看到这是如何转移所有权的.这是我的代码:

let res = screenshot::take_screenshot(0);
let file = File::open("test.png").expect("Failed to open file");

let encoder = PNGEncoder::new(file);
encoder.encode(&res.into_raw(), 
               res.width(),
               res.height(),
               ColorType::RGBA(0)
);
Run Code Online (Sandbox Code Playgroud)

screenshot::take_screenshot是一个返回的函数ImageBuffer<Rgba<u8>, Vec<u8>>.这是我得到的编译器错误:

error[E0382]: use of moved value: `res`
  --> src/main.rs:21:37
   |
21 |     encoder.encode(&res.into_raw(), res.width(), res.height(), ColorType::RGBA(0));
   |                     ---             ^^^ value used here after move
   |                     |
   |                     value moved here
   |
   = note: move occurs because `res` has type `image::ImageBuffer<image::Rgba<u8>, std::vec::Vec<u8>>`, which does not implement the `Copy` trait

error[E0382]: use of moved value: `res`
  --> …
Run Code Online (Sandbox Code Playgroud)

rust

0
推荐指数
1
解决办法
253
查看次数

标签 统计

c++ ×2

rust ×2

glfw ×1

linux ×1

opengl ×1

textures ×1