• ベストアンサー

UNIXでのプログラム

UNIXでのプログラム UNIXで、例えばC+のソフト等を動かすには、どのようにしたら良いのでしょうか? C+のソフトをコンパイルしたものを単にデレクトリー上に置けば良いのでしょうか? この辺りを解説した本があれば、ご紹介願います。 UNIXのコマンドを解説した本はあるのですが、プログラムをどのように作って動かすかの部分が分からないので宜しくお願い申し上げます。

質問者が選んだベストアンサー

  • ベストアンサー
  • kmee
  • ベストアンサー率55% (1857/3366)
回答No.2

+が一つたらないのか、他の言語なんだかわかりませんが。 UNIXでコマンドを実行するときは まず、下準備として、実行属性を付けます。 chmod a+x ~ とかです。自分だけしか使えないようにするには u+x,og-x とか。 通常、CやC++では最終的な実行ファイルに自動で付けてくれます。 ファイル名はなんでも構いません。 テキストファイルも「コマンド」として実行できます。1バイト目から「#!」ではじまる行を書くと、そこにあるコマンドで実行します。たとえば mycommand とファイルの先頭が「#!/usr/bin/perl」と書いてあれば(かつ、実行属性があれば) /usr/bin/perl mycommand と実行したのと同じになります。 #!がなければshのスクリプトとして実行しようとします。 拡張子で判断するWindowsとは違います。 ファイルはどこに置いてもかまいません。 運用上の慣習として、 /usr/bin にはOSが用意したものしか置かず、追加したいものは /usr/local/bin 等といったディレクリに置きます。 ここに置いたものはだれでも実行できるようになるし、システム全体にも影響が出かねないので、管理者以外はインストールできないようになっています。 自分しか使わないけど、既存のコマンドかのようによくつかう、というなら $HOME/bin とかに置いて、環境変数PATHに$HOME/binを追加しておきます。 演習問題を実行したい、という程度なら、コンパイルした場所にそのままにしておきます。 コマンドとして入力した場合は次のようになります 1. ファイルの場所を示すパスをつけて入力した場合 ./a.out とか /bin/sh とか 指定したファイルを実行します。 2. コマンド名だけ入力した場合 まず、入力したシェルでaliasや内蔵コマンドにないか調べ、あったらそちらを実行します。 無ければ、次に、環境変数PATHの:で区切られたディレクトリを順番に調べ、一致するファイルがあれば実行します。 それでもなればエラーです。 ここで、Wndowsと違うのは「カレントディレクトリから探す」というのがない、ということです。 PATHに入っていなければ、カレントディレクトリからの検索は行いません。 1のパスを指定しての実行すれば動作します。 以上をふまえて、あなたが使おうとするコマンドがどれにあたるか考えて、適切な場所に置いて、適切な方法で実行してください。

参考URL:
http://www.amazon.co.jp/UNIX%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9F%E3%83%B3%E3%82%B0%E7%92%B0%E5%A2%83-%E6%B5%B7%
alpha357
質問者

お礼

C++の間違いです。良く分かりました。ありがとうございました。

その他の回答 (1)

  • edomin7777
  • ベストアンサー率40% (711/1750)
回答No.1

cとc++は知っているけど、c+ははじめて聞いた…。 コンパイルが完了したものを置いてあるディレクトリにパスが通っていないなら、 ./hoge.o と作成したものの前に「./」をつければ起動できます。 ※UNIXのコマンドを解説している本には、必ずpathの説明もあるはずです。 ※探してみましょう。

関連するQ&A