不能运行 SDL2 双击可执行

Can't run SDL2 executable by double-click

你好:)

目前正在学习SDL2,用它做了几个程序。 使用这些程序,当我双击可执行文件时,程序启动,一切正常。 在我制作的最后一个程序中,它不再起作用了。有了这个,我只能从终端启动。 exe 有权限,所以没有理由发生这种情况...

我唯一改变的是我使用的旧通用函数文件(对于 "loadTextureFromImage()"... 之类的东西)到我创建的动态库。这是整个项目的 link(目前只是白色的 window)-> RightHere

我现在 运行宁 Ubuntu 14.04.

如果您知道为什么它不适用于这个项目,请告诉我!

提前致谢;)

PS :这是一个实际有效的项目 -> RightHere

PS2 : 项目在 c


好的,所以我做了 ldd ./myprog,库 linked 是我放置它们的地方,在“${HOME}/lib”中。如果我没看错,你是在告诉我,因为这些库不在“/usr/lib 等等...”中,所以找不到它们,我应该写一个脚本。有一点我忘了告诉你:我必须在我的 .bashrc -> export LD_LIBRARY_PATH=${HOME}/lib 中添加一个环境变量,以便在编译时找到这些库。因为你所说的,我认为这个变量只在终端中加载,不是吗?所以我尝试了两个脚本:

#!/bin/bash

LD_LIBRARY_PATH=$PWD

./myprog

(如您所说)和

#!/bin/bash

LD_LIBRARY_PATH=${HOME}/lib

./myprog

(就像我在 .bashrc 中所做的那样)。

当我 运行 通过双击它们时,两者都不起作用。 但是,当我从终端 运行 它们时,只有第二个有效。

感谢您的回答,希望对您有所帮助...

编辑:我确认 .bashrc 中设置的变量只加载到终端中:我测试了这个脚本 ->

#!/bin/bash

echo $LD_LIBRARY_PATH > Run.log

LD_LIBRARY_PATH=${HOME}/lib

echo $LD_LIBRARY_PATH >> Run.log

./Pong

并且,当我从终端 运行 它时,Run.log 包含这个:

/home/yohan/lib /home/yohan/lib,

但是,当我运行双击它时,它只包含

*newline* /home/yohan/lib

Add export before your variable setting. – keltar

好的,非常感谢,现在可以使用这个脚本了:

#!/bin/bash

export LD_LIBRARY_PATH=${HOME}/lib

./myprog