在我对问题进行更多细节介绍之前,我必须说一些非常重要的事情:
是的,我的脚本已打开“允许将文件作为程序执行”。
问题本身:
由于编程原因(共享库),我无法仅从可执行文件执行我的程序,因为我需要LD_LIBRARY_PATH
在执行程序之前进行访问。我创建了这个脚本来执行此操作(请记住这是我第一次编写脚本):
#!/bin/bash
#Get the current directory and append the SO's location
currentDir=$(pwd)'/libs/'
#Change the library path
export LD_LIBRARY_PATH=$currentDir
#Run the program
./program
从终端运行此程序后,我认为它已经成功了,没有错误,程序也没有抱怨共享库。但不幸的是,如果我尝试.sh
从 Nautilus 双击该文件,什么也没有发生。最糟糕的是,由于我是从 GUI 运行它,所以我不知道它得到了什么错误。我运行的是 Ubuntu 14.04,可执行文件是一个使用 SFML 库的 C++ 程序(是的,我可以只拥有依赖项,但 SFML 并不常安装在 Linux 计算机上,这不是重点)。