• ベストアンサー

LINUXでコンパイルができません

RedHat6.2と7.0をつかっているのですが、tar.gz形式のソフトをダウンロードして、解凍するところまでは出来るのですが、makeコマンドを使ってコンパイルしようとすると、始めは、makeなんてない!って言われてこりゃいかんと思い、インストールディスクに入ってたmakeのRPMパッケージをインストールしてやってみたところ、今度はgccがないぞ!と言われて、「へ?それもいるの?」という感じで、パッケージを探したところ、入ってなくて仕方なくネット上を捜し歩いたら、rpmパッケージを発見したので、それをインストールしたのですが、それで実行すると、最後の最後で、エラーが出て、結局コンパイルできませんでした。これではなんにもソフトがインストールできません。どなたかアドバイスをお願いします。因みに今は、自宅ではないのでエラーメッセージがわかりません。帰ってからコメントしておきます。

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

  • ベストアンサー
  • Fooky
  • ベストアンサー率71% (59/82)
回答No.3

さっぱり分りません。ギブアップです。 ???????のところは、さっきも書いた通り、 エラーメッセージが出るべき所なんで、何か、 gccのインストールに問題があるような気がします。 ところで、 > RedHat6.2と7.0をつかっているのですが、 とありますが、どっちで問題が起こってるんでしょう。 まさかとは思いますが、最初RH6.2をインストールし、 7.0のCD-ROMでOSのアップグレードをしないままに 7.0のCD-ROM内のRPMをインストールしたり してないですよね? もしそうしたとしても、カーネルバージョン2.2.14と 2.2.16だしそんなにクリティカルな問題にはならなさそう ですがね。なんとなくですが。 あとは、????のところでstdio.hが無いとか言ってるとしたら、 glibc-devel-が入ってるか調べるんでしょうかね。 どうもシステムの挙動が妙な感じですから、まだアプリをあまり 入れてないようでしたら、OSの再インストールも考えても 良いかも知れません。

sentakuc
質問者

お礼

了解です。 上の方も再インストールをすすめてくれらので、再インストールしてみます。 ほんとうに今回はいろいろと勉強になりました。 重ね重ね、ありがとうございました。

その他の回答 (3)

  • BigBoobs
  • ベストアンサー率36% (16/44)
回答No.4

なぜか、たまに make や gccなどがインストールされていないときがある。 それだけじゃなくて、その他開発系やライブラリ系のパッケージがデフォルトでインストールされるはずのものが、入ってないときがある。 うちはKondaraとRedHat7.0であった。  もし、どの開発系かライブラリ系のパッケージが必要かわかれば、それを入れればいいんだけど、わかんない場合はしょうがないので、とりあえずOS入れなおしが手っ取り早いかも。入れなおすときはカスタムインストールで注意してパッケージを選べば大丈夫でしょう  

sentakuc
質問者

お礼

そちらも同じ現象があったんですね? それならご推薦の再インストールやってみます。 大変参考になりました。 ありがとうございました。

  • Fooky
  • ベストアンサー率71% (59/82)
回答No.2

いろいろ疑問な点があります。 1.naturalさんのおっしゃっている通り、gccとmakeが最初から   入っていなかったということはちょっと考えにくいです。   さらにはインストールCDにも入っていなかったというのは   あり得ないです。gccは、"gcc-?.?.?...."みたいな名前の   パッケージじゃなく、"egcs-?.?.?-..."という名前の   パッケージに入っていることが多いです。ネット上で   取ってきたgccのパッケージを独自にインストールされた   ようですが、このインストールが中途半端だった可能性は   ないですか?インストールCDからegcsを捜し出し、   もう一度インストールされた方がいいかも?   makeやgccに限らず、入っているはずのコマンドが見付からない   場合、大抵はパスが通っていないことが原因です。     echo $PATH   とやって、     /bin:/sbin:/usr/bin:/usr/sbin:/usr/X11R6/bin:/usr/local/bin:/usr/local/sbin   (:で区切られたディレクトリ名(パス)の順序は不同)が出ないと、   パスが足りません。パスの定義方法を調べてパスを増やしてください。 2.コンパイルに際して、解凍→makeとされているように見受けられますが、   それは正しいコンパイル方法ですか?解凍してできたディレクトリ内の   READMEとかINSTALLといった名前のファイルを読みましたか?   詳しいインストール方法はそれらのなかに書かれています。   一般的なインストール方法は、     ./configure     make     su     make install   です。しかし、例外はいくらでもありますので、READMEやINSTALL   を読んでください。    3.makeのエラーメッセージをもっと詳しく調べてください。   「make:*** {ソフト名} エラー1」の直前のメッセージこそ原因が書かれて   いるところです。   例えば、手元のソースコードをちょっと変更してコンパイルエラーを   つくってみたら、下のようになりました。   ...   make[1]: ディレクトリ `/home/fukayama/Gaze/Agent2/src/tester' に入ります   g++ -Wall -g -o ../../bin/tester_clnt tester_clnt.cc   tester_clnt.cc: In function `int main (int, const char **)':   tester_clnt.cc:33: `socket' undeclared (first use this function)   tester_clnt.cc:33: (Each undeclared identifier is reported only once   for each function it appears in.)   make[1]: *** [../../bin/tester_clnt] エラー 1   make[1]: ディレクトリ `/home/fukayama/Gaze/Agent2/src/tester' から出ます   make: *** [make_tester] エラー 2   エラー1の直前の3行に、まさにエラーの原因が書かれています。   この場合、「tester_clnt.ccの33行目で、socketとという訳の分からん   言葉が出て来てるぞ」というエラーです。その上の、g++ -Wall ...は、   これからg++(gccみたいなもの)を使ってコンパイルしますよ、   という意味です。 4.?がたくさん出てうまく行っているみたい、ってどういうことなんでしょう?   コンパイルがうまく行っているときに?が出るというのは見たことない   です。うまく行ってないときでも、?が出るというのはちょっと見たことが…。   もしかして、最後のエラー1が出るまでの時間って、ほんの一瞬(1秒とか)   じゃないですか?もしそうなら、何一つうまく行ってないのかも知れませんね。   そんなに大きなプログラムでなくても、コンパイルは結構時間のかかる作業で、   最低でも数秒程度は要します。自作なら別ですが、特に一般に公開されてる   ようなプログラムなら。 最近はRPMではい、インストール終了、って感じですが、こうやってコンパイルに 悩むのも結構、勉強になって良いと思いますよ。頑張ってください。

sentakuc
質問者

補足

実行後の画面は、 gcc -02 -g Dlinux noip.c -o noip noip.c:51:19: stdio.h: ??????????????????? この?が#の変わりにでてるのかな?とおもったんですが・・・。?が右にどんどん増えていって、一つ一つのファイルごとに量がちがいます。 ちなみにあとこのような行が10行くらい続いた後、 突然例の エラー1という文字がでます。 ちなみに、確かに、makeと最初にコマンドを打ったら そんなコマンドありませんと表示がでました。 RPMって二重にインストールしようとすると、確かエラーがでるはずですが、makeを入れたときは普通に完了してしましました。このredhatは、パッケージの製品なのですが、普通の雑誌とかのとどっか違うのでしょうか?(ちなみにパッケージには10枚近くインストールディスクがついてきまいた。)インストール自体は1枚目でおわってしまうのですが・・・。 それと、確かめてみたら、 gcc-2.96-54.i386.rpmってのがCDにはいっててこれをインストールしてました。(^^;すみません。

  • natural
  • ベストアンサー率37% (419/1115)
回答No.1

make時のエラーメッセージをもう一度よく御覧になった方が良いかもしれません。 RedHatLinuxにはgccもmakeも入っていたはずですので原因は別のところにあるのではないかと・・・。 例えばmakeの際に必要なconfigファイルが作成されていないとか。 その場合はmake configとか行ってからmakeしたような記憶があるのですが・・・。(うろ覚えですみません。(^_^;) とりあえずインストールしようとしているソフトのREADMEやエラーメッセージをもう一度確認してみることをお勧めします。

sentakuc
質問者

お礼

丁寧なご説明ありがとうございます。 さっそくやってみましたが、 make conf と、入力すると、 make:*** ターゲット ’conf’をmakeするルールがありません と表示されてしまいました。 ありがとうございました。

sentakuc
質問者

補足

コンパイルを開始すると、 行端に make:*** {ソフト名} エラー1 と出ます。 途中までは、?がたくさん出てうまくいってるみたいなんですが・・・。 ちなみにどのソースを使ってもこうなります。

関連するQ&A