Windows 7から移行したい新しいLinux「上級ユーザー」として、私は検索で回答できる基本的な質問を拒否しましたが、この問題に固執しました。
Linux端末でgccを使用してCから実行可能ファイルを作成すると、権限が付与されたことを示すhello.exe
メッセージが表示されますX
。その後、端末で./hello.exe
問題なく実行できます。
ただし、Cajaで実行しようとすると、そのコンポーネントはテキストファイルとして表示されます。ただし、「管理者として実行」を選択できますが、ログインパスワードを入力する必要があります。
次の 2 つの設定のどちらが有効になっているかは問題ではありません。
- 実行可能なテキストファイルが開いたら実行します。
- 実行可能なテキストファイルを開くと表示されます。
しかし、2番目の設定のままにしておきます。それ以外の場合は、テキストファイルを表示または編集するたびに何をしたいのかを尋ねられます。
sudo caja
(パスワードが必要)を使用して端末でCajaを起動しようとしましたが、Cajaは実行可能ファイルを実行しません。別の言葉これは「実行」オプションがもう存在しないためです。
Cajaで直接実行可能ファイルを実行するには:ダブルクリック?
編集:実行可能ファイルを実行できますか?どのダブルクリックでファイルマネージャを開くことはできますか?
編集2:今、Nemoファイルマネージャを使用してMint Cinnamonを実行しますが、問題は基本的に同じです。実行可能ファイルを直接実行できる設定がいくつかありませんか?
編集3:
調査して発見したもの
GNOMEはノーチラスのバイナリアプリケーション実行機能を削除します。:
「つまり、Nautilusを使用してプログラム、スクリプト、またはアプリケーションをダブルクリックして起動することはできません。」2018年5月)
ファイルマネージャの作成者がそれをオープンソースコードの派生として(またはおそらく共通のシステムコンポーネントを使用して)開発したと疑うように、おそらく今は誰もそうしないでしょう。
このウィキペディアページも見つかりました。ファイルマネージャの比較色々なテーブルがあります。呼び出されますファイル属性最後の列は「実行ファイルの実行」だったので、そのファイルマネージャのいくつかを試しました。
- まったくそれらのいくつかは私がコンパイルした実行可能ファイルを実行します(一部はシステムドライブではなく作業ドライブに簡単にアクセスできません)。
しかし、とにかく私は今簡単な解決策を見つけました。これは、私のお気に入りのテキストエディタであるGeanyがPut it into the projectを変更せずにクリックするか、F5キーを押して現在のソースファイル(存在する場合)の実行可能ファイルを実行することです。
答え1
はい、Cajaなどのファイルマネージャで実行可能ファイルを実行できます。
hello.c
GUIなしで単純な「hello、world」プログラムを含むファイルがホームディレクトリにあるとします/home/User
。例:
#include <stdio.h>
int main()
{
printf("hello, world\n");
}
プログラムの実行後にコンパイルされ、実行可能gcc -o hello hello.c
ファイルとして生成されますhello
。
Cajaで直接実行するには、hello
端末を起動してその中で実行可能ファイルを実行する実行可能プログラムを提供するか、単純なGUIで実行可能ファイルを提供します。
ランチャーを使用する予定の場合は、他の作業を行う前に(以前にこれを行ったことがない場合)、ターミナルを開き、「デフォルト設定」に移動して「HoldOpen」という新しいプロファイルを追加してから、「コマンド時」を設定します。お勧めします。 [終了]をプロファイルの[コマンド]タブの[ターミナルを開いたままにする]に変更します。そうしないと、ターミナルが開き、プログラムを実行し、ランチャーから起動すると結果が表示される前に閉じます。
その後、hello
プログラムの実行プログラムを作成します。ランチャーは.desktop
拡張子を含むテキストファイルであり、概念的にはWindowsのショートカットに似ています。拡張子はファイルがCajaに表示されても表示されませんが、.desktop
端末のディレクトリリストには表示されます。現状のまま保存する必要がある簡単な実行プログラムは次のとおりですhello.desktop
。
[Desktop Entry]
Version=1.0
Type=Application
Name=hello
Comment=
Exec=mate-terminal --profile=HoldOpen -e "/home/User/hello"
Icon=
Path=
Terminal=false
StartupNotify=false
ランチャーは手動で作成するか(上記のように)デスクトップを右クリックして「ランチャーを生成...」を選択し、少なくとも「名前」と「コマンド」ボックスを入力して作成できます(後者は「Exec」キー)。
Cajaでランチャーファイルをダブルクリックすると、hello
独自の端末で実行され、出力が表示されます。
「ターミナル」キーは実際に実行中の合致端末であり、合致hello
端末内で実行されるため「false」に設定されています。
また、mate-terminalの代わりにgnome-terminalを使用している場合は、端末から出力を表示するには、「hello、world」の前にいくつかの改行を追加する必要があるかもしれません。
ランチャーの詳細については、Freedesktop.orgをご覧ください。デスクトップエントリの仕様。
実行プログラムなしでCajaで直接ダブルクリックでプログラムを実行するもう1つの代替方法は、Zenityアプリケーションを使用して要求に応じてGUIダイアログを生成して、プログラムに簡単なGUIを提供することです。を実行してZenityをインストールできますsudo apt-get install zenity
。その後、hello.cプログラムのstdio printfステートメントをstdlibおよびシステムコールに置き換えてダイアログボックスを表示できます。
#include <stdlib.h>
int main()
{
system("zenity --info --title='Hello' --text='hello, world'");
}
man zenity
Zenityアプリケーションの詳細については、リソースを参照してください。