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

时间:2015-10-13 11:57:26

标签: linux

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

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

normal behaviour

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

messed up behaviour

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

1 个答案:

答案 0 :(得分:0)

好的,这就是事情:我发现,如果我从文件管理器运行我的可执行文件(即点击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