0

うわー、最初に私がこのサイトで見つけた答えの数を数え失ったと言わせてください。あなたたちは素晴らしいです!

ですから、私が投稿する最初の質問はかなり基本的なものなので、ひどく受け取られないことを願っています。私はグーグルとここで答えを見つけるために検索しましたが、答えは見つかりませんでした。

Linuxでcode:blocksを使用してコンソールアプリを作成し、コンパイルしてから、code:blocks内で実行しました。正常に動作します。次に、Linuxのbashシェルを開き、バイナリがあった場所にcdして、そこから実行してみました。サイコロはありません。私のLinuxの仲間がやって来て、./前に試してみるように言った。ビオラ、それはうまくいった。./はシェルスクリプトを実行するためだけに必要だと思ったので、私は呆然としました。g++でビルドされたバイナリのファイルパーミッションを確認しました。それらは次のとおりです。-rwxrwxr-x

code:blocksを使用してHello Worldアプリケーションを構築する他のチュートリアルを見つけました。また、。/を使用してコマンドラインで実行するように指示されています。

なんでそうなの?また、コンソールアプリケーションやその他のバイナリアプリケーションを構築して、実行に./が不要になるようにするにはどうすればよいですか?grepなどの組み込みのLinuxコマンドの大部分は、実行に./を必要としないため、どういうわけかそれが可能であると思います。

みんなありがとう。

4

1 に答える 1

0

UNIXライクなシステムで実行可能ファイルを実行するには、パス解決に注意する必要があります。実行可能ファイルへのパスがPATH環境変数に含まれていない場合(および含まれてい.ない場合もあります)、自分で指定する必要があります。

に追加.することによりPATH、次のようになります。

export PATH=$PATH:.

を追加せずに、現在の作業ディレクトリから実行可能ファイルを実行できます./。ただし、マルチユーザーシステムでは、明示的な許可なしに他のユーザーがグループまたは誰でも書き込み可能なディレクトリで実行できる実行可能ファイルを提供できるため、これは安全でない場合があることに注意してください。

于 2013-03-19T14:38:48.627 に答える