質問に詳細を追加する前に、非常に重要なことを言わなければなりません。
はい、私のスクリプトは「ファイルをプログラムとして実行することを許可する」がオンになっています。
プログラミング上の理由(共有ライブラリ)のため、プログラムを実行する前に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
ターミナルからこれを実行した後、私はそれが機能していると思いました、エラーはなく、プログラムは共有ライブラリについて文句を言いませんでした。しかし、残念ながら、Nautilusから.sh
ファイルをダブルクリックしようとしても、何も起こりません。最悪の部分も、GUIから実行しているため、どのエラーが発生するのかわかりません。私はUbuntu 14.04を実行しており、実行可能ファイルはSFMLライブラリを使用するC++プログラムです(はい、私は依存関係を持つことができますが、SFMLはLinuxコンピュータに一般的にインストールされておらず、これはポイントです)。