Linux SDL2 应用程序在 Code::Blocks IDE 之外没有透明度

标签 linux

我有一些奇怪的问题,我不明白其起源。

我有一个在 Windows 上构建并运行的 SDL2 应用程序,现在我正在尝试构建一个 Linux 版本。我在两个系统上都使用 Code::Blocks。在我在 Linux 上的 Code::Blocks 中设置所有路径和库后,它可以正常构建和运行。

normal behaviour

但是当我将可执行文件和所有需要的文件移动到单独的目录时,我突然出现了奇怪的行为:所有图像现在都失去了透明度并且看起来非常困惑。

messed up behaviour

我只是不明白发生了什么。为什么一切都在 IDE 中运行,而当您尝试像正常可执行文件一样运行它时会发生这种奇怪的事情?

最佳答案

好的,事情是这样的:我发现,如果我从文件管理器运行我的可执行文件(即通过单击 run.sh 脚本),一切都很好。但是,如果我尝试从命令行运行此脚本,我会遇到透明度问题。

不过,我仍然在 SDL_SetTextureBlendMode 调用中收到有关“无效渲染器”的错误,但它们实际上可能并不相关,因为我可能忘记检查所有其他 SDL 调用的错误,而该报告只是另一个调用的一些遗留问题。

但是,仍然有人知道为什么会这样吗?

当我为 Linux 下载带有图形的最新版本的 ADOM 时,我得到了这种解决方案。我选择了 Debian 6.0.5 的版本作为最接近我的版本 - 我有 7。当我尝试从命令行运行游戏时,我遇到了与我的应用程序相同的透明度问题。然后我决定尝试通过单击可执行文件从文件浏览器运行它 - 瞧!一切正常。

WTF...

仅供引用,我用来运行 exe 的 run.sh 脚本如下所示:

#!/bin/sh

export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:lib
./Asteroids-x64

关于Linux SDL2 应用程序在 Code::Blocks IDE 之外没有透明度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33102098/

相关文章:

c++ - 如何将 C++ 库添加到公共(public) linux/unix 集群上的编译器

linux - 如何为安装程序编写 "yes"响应脚本?

linux - 如何在不杀死当前执行行的情况下杀死shell脚本

linux - 在 bash 中获取目录或文件的基本名称的快速且正确的方法

linux - 如何使用 ADL 在 Linux 上调试 Adob​​e AIR 应用程序?

linux - 为 arm-gcc-compiler 安装库

linux - 如何在bash脚本中grep外部txt文件?

linux - 在/etc/group文件中修改正确的组名和ID

linux - HBase shell命令获取特定表的大小

c - 套接字事件如何传播/转换为 epoll?