双击无法运行SDL2可执行文件

时间:2016-02-06 21:06:52

标签: c executable sdl-2 double-click

您好:)

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

我唯一改变的是我使用的旧通用函数文件(例如" loadTextureFromImage()" ...)到我创建的动态库。这是一个指向整个项目的链接(现在只是一个白色窗口) - > RightHere

我目前正在运行Ubuntu 14.04。

如果你对它为什么不适用于这个项目有所了解,请告诉我!

提前谢谢你;)

PS:这是一个实际工作的项目 - > RightHere

PS2:项目在c

好的,所以我做了ldd ./myprog,并且链接的库是我放置的地方,在" $ {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

1 个答案:

答案 0 :(得分:1)

  

在变量设置之前添加导出。 - 凯尔塔尔

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

#!/bin/bash

export LD_LIBRARY_PATH=${HOME}/lib

./myprog