• ベストアンサー

Linux におけるコンパイル について

naturalの回答

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

コマンドラインでgccを使用してコンパイルします。 # gcc -o sample sample.c (#はプロンプト) といった感じでしょうか。 "-o sample"は実行ファイル名をsampleという名前にするように指定しています。 これを付けないとa.outという名前の実行ファイルになってしまいます。 尚、makeはMakefileの記述を解釈・実行するコマンドで、Makefileにはコンパイル・リンクの手順を記述しておきます。 Hello World!の様な小さなプログラムであればgcc単体で行った方が簡単です。 makeに関しては参考URLをご覧下さい。 #RedHatにはgccが標準で入っているはずですが、見つからない場合はfind #コマンド等で探し、pathを通して再実行してください。 #それでも見つからない場合はインストールディスクの何処か、または #ネット上から探してくることになります。

参考URL:
http://tanaka-www.cs.titech.ac.jp/~euske/doc/make_qref.html
tomatosuki
質問者

お礼

なるほど、よくわかりました。 どうも、ご親切にありがとうございました。

関連するQ&A

  • コンパイルできない

    C言語のプログラムをはじめたばかりの初心者ですが、 "smp1.c"というソースファイルをメモ帳でつくり、コマンドプロンプトで上でコンパイルしようとしたのですが、うまくいきません。 smp1.cファイルの内容は #include <stdio.h> int main(void) { printf("Hello\n"); return 0; } となっています。cworkというディレクトリにすべてのプログラムを保存しています。 コマンドプロンプト上でcworkディレクトリに移動し"C:\cwork>" の後に ”cl smp1.c ” とタイプしてenter を押しても 'cl' is not recognized as an internal or external command, operable program or batch file. と表示されコンパイルできません。 一体どうすればいいでしょうか? 初心者なので説明不足かもしれませんが その際は補足しますので、どうが教えてください.

  • コンパイルできない...

    学校のC言語のレポートを家でやろうと思ったのですが、ソースコードを変更していないのにコンパイル時にエラーがでます。おそらく環境の違いによるものだと思うのですが、そのへんには非常に疎いもので教えていただけないでしょうか? 実行したコンパイルは gcc -g -o abc abc.c fft.o -lm です。 学校はRed Hat Linuxで自宅はWindowsなのでcygwinを用いています。エラー文ではfft.oがうまく取り込めていないみたいです。

  • 配列の要素数を超えた参照のコンパイル

    C言語においては”配列の要素数を超えての参照もコンパイルエラーにはならない”という事がいえます。 例えば int a[10]={1}; とした時、a[-1] a[11]を参照しても、コンパイルエラーにはなりません。不定値が表示されるか、Red Hat Linuxに関しては”セグメンテーション違反です”とでるだけです。 しかし、わたしはCしか学んではいませんので解りませんが、配列の要素数を超えての参照はコンパイルエラーになる言語もあるのではないかと思います。 C言語はよく”暴走する言語”と言われます。規制をできる限り排除して軽くし、ミスはプログラマが取るという意味に考えています。 ”C言語においては配列の要素数を超えての参照もコンパイルエラーにはならないという事”はC言語のその様な設計思想に基ずいた仕様なのでしょうか。 それとも、違う考えに基ずいて、”配列の要素数を超えての参照もコンパイルエラーにはならない”という事に成っているのでしょうか。 宜しく願います。

  • MingwでC++のソースがコンパイルできない。

    質問があるのですがよろしくお願いしします。 プラットフォームは Windows HOME です。 MinGWでC++のhelloworld.cppという名前のプログラム ------ここから----------- #include <iostream> using namespace std; int main(){ cout <<"Hello World!!\n"; return 0; } -------ここまで----------- を、gcc helloworld.cpp とWindowsのコマンドプロンプトから打ってコンパイルしようとしたのですが、 undefined reference to std string::size() const undefined reference to std string::operator[](using int) const undefinrd reference to std::cout undefinrd reference to std::basic_ostream<char, std::char traits<char> >&, char const*) undefinrd reference to std::ios_base::Init::() undefinrd reference to std::ios_base::~Init::() などのエラーが出て、コンパイルできません・・ hello.cという名前のC言語プログラム --------ここから------ #include<stdio.h> int main(void){ printf("Hello GCC World on Windows!!\n"); } ------ここまで------- は、gcc hello.c で正常にコンパイルでき、生成したexeファイルも正常に動きます。 また、eclipse CDT上からc++プログラムをMinGWでコンパイルすることもできるのですが・・ なぜかWindowsのコマンドプロンプトからc++プログラムをコンパイルしようとするとエラーが出てしまいます。(C言語のプログラムでもエラーが出ることが時々あります。) どなたか詳しい方いらっしゃいましたらご教授頂けると幸いです。 よろしくお願いします。

  • RED HAT LINUX5.2 について

    LINUXの初心者です。 RED HAT LINUX5.2をインストールして動かしてます。 IPも設定してPINGもとおっています。 とても恥ずかしいのですがどうやってネットにつなげて(ブラウザみたいなものは?)ダウンロードしたりすればよいですか? やっぱりURLをうつようなコマンドがあるのですか? またLINUXのコマンド一覧なんかが載っているHPがあれば教えてください。 宜しくお願いします。

  • cc hello.cってやっても、、、

    大学でC言語を勉強してます。自宅でもlinuxをやろうと思い、RedHat7Jを入れることには成功しました。プログラミングの知識は少しはあるのでいざ!、あの有名なhello.cのプログラムを書いてコンパイルしました。大学のパソコンからならここでa.outと打てば「hello world!」と出るはずが bash:a.out:command not faund とでてしまいます。lsコマンドで見てもa.outはちゃんと存在しているんですが、、なぜこうなるのでしょうか? どなたか回答よろしくおねがいします。

  • Javaでコンパイルできなくなりました

    javaでコンパイルできなくなりました。今まではJava2 SDK バージョン1.4.2_03をインストールしてコマンドプロンプトからjavac、javaコマンドを用いコンパイル、実行していました。 そして、Eclipse(バーション3.0)というIDE環境に興味を持ちインストールした後にとりあえずもう一度コマンドプロンプトからjavacコンパイルしてみたらエラーがでるようになりました。 ソースを書くと長くなってしまうので簡単に説明すると、String sに"Hello World"を代入してSystem.out.println()で表示させるだけのプログラムです。Eclipseをインストールする前は実行できたのでソースに問題があるという事はありません。エラーメッセージは以下のような感じでした //エラーメッセージ 検出値 : java.lang.String 期待値 : String String s = "Hello World"; その後にソースで String s="Hello World";としていた行を java.lang.String s = "Hello World";に変更しました するとjavacではエラーが出なくなるのですがjavaコマンドで実行すると Exception in thread "main" java.lang.NoSuchMethodError: main というメッセージが出て実行できないです。 環境変数は、SDKインストール後、PATHC:\j2sdk1.4.2_03\bin;を加え、Eclipseインストール後は何も変更していません。 何が問題なのでしょうか?お願いします。

    • ベストアンサー
    • Java
  • LINUXでコンパイルができません

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

  • Linuxでプログラミング

    Windows7でVirtualBoxを利用してLinuxを使っています。 そのLinuxでC言語のプログラムをgccでコンパイルしたのですが、 error: stdio.h:No such file or directory In function main': 警告:incompatible implicit declaration of built-in function printf' と表示されます。プログラムは以下のような内容です。 #include<stdio.h> int main(void) { printf("hello,world\n"); return 0; } なぜエラーになってしまうのか分かりません。どうしたらよいのでしょうか? 他に何か必要な情報があれば答えます。よろしくお願いします。

  • javaのコンパイルについて

    java初心者なのですがコンパイルができません! コマンドプロンプトでjavac Hello.javaと入力すると、内部コマンドまたは外部コマンド、操作可能なプログラムまたはパッチファイルとして認識させていません、とでてきて実行できません。 環境変数でパスの設定をしてたのですが何回も見直しても間違ってないのに、コマンドプロンプトで  [Path]\javac.exe-help  と入力すると指定されたパスは見つかりませんと出てきます。 ちなみに環境変数のところには行末に、 ;C:\Program Files\Java\jdk1.6.0_07\bin と入力しました。 何が問題なのでしょうか??ちなみに,version 6 update 7 です。 わかる方是非返答お願いします!!