仕事でunixからC言語のコンパイラーをつかっています。
WindowsXPからC言語となるとすぐVISUALC++を想像してしまい 単純なunixでつかっているようなものが見当たりません。
linuxはつかったことないのですが、unixと似ているとききました。
unixと同じく標準でcコンパイラーは付属しているのでしょうか?
ちなみにC言語を使いテキストファイルを編集(並び替えやあるワードの抜き出しやあるワードの置換)するプログラムを組み実行しています。

このQ&Aに関連する最新のQ&A

A 回答 (3件)

RedHat/Fedora Coreのようなインストール時に「Installation Type」の選択があるようなディストリビューションだと「Personal Desktop」のようなデスクトップ環境を選択するとgccはインストールされない事があるので気を付けてください。


その場合には、別途gcc(通常、パーッケージとして提供されている)をインストールする必要があります。


以下、余談。

>WindowsXPからC言語となるとすぐVISUALC++を想像してしまい 単純なunixでつかっているようなものが見当たりません。

Windowsでも、例えばMinGWやCygwinをインストールすればgccをWindowsで使用する事が可能です。

○タダで始めるC/C++プログラミング for Windows
http://www2.wbs.ne.jp/~dskoba/database/prog.htm\


>unixと同じく標準でcコンパイラーは付属しているのでしょうか?

フリーのUNIX系OS(Linux/FreeBSD等)はそうかもしれませんが、商用UNIX系OSの場合、ほとんど標準でCコンパイラは付属しているということはないです。
別途、Cコンパイラは購入というのが多いです。
    • good
    • 0

#1さんの補足です。


ほとんどのディストリビューションで、標準のインストールでgccはインストールされています。
    • good
    • 0

LinuxディストリビューションにはフリーのCコンパイラgccは標準で付いていますのでそれをインストールして使ってください。

    • good
    • 0

このQ&Aに関連する人気のQ&A

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

Qcc と gcc の違い

CCとGCCの違いについて教えてください。
どちらも、コンパイラという点では同じだと思うのですが、なぜ2つの方式ができたのでしょうか??

少し話がずれますが、プログラムを汎用性も持たせるなら、どのようなオプションをつけるべきでしょうか?
-ansi とか -Wall あたりをつける癖をつけておけば十分なのでしょうか??

G++とGCCの違いについても知っていれば教えて下さい
初歩的な質問ですがお願いします

Aベストアンサー

GCCはそのコンパイラの固有名詞です。
http://gcc.gnu.org/ このサイトに解説があります。
ccは多くの場合そのシステムに標準で突いているコンパイラです。
そのOSのベンダが提供しているばあいもあれば、FreeBSDのように
中身はgccというものもあります。

g++とgccの違いはデフォルトでC++のファイルとして扱うか
というところが違うだけだったはずです。(多分)

Qセグメンテーション違反

C言語を使用しています。

構造体に値をいれようとしたら、コンパイルは出来るのですが、実行時に
「セグメンテーション違反です (core dumped)」
となってしまい、それ以上行えません。

構造体と代入したい変数との型は、合っています。

いろいろ本などで見ましたが、何が原因かわからず困っています。
教えてください。
宜しくお願いします。

Aベストアンサー

OSは何でしょうか。コンパイラは何を使用していますか?
通常、デバッグオプションをつけて実行すると、異常の発生したソースの箇所で止まりますので、それが手がかりになります。またNo1の方が言われてますように、ソースが公開できるのであれば、ソースを提示するのが良いかと思います。

Qmake でエラー

勉強中の身です。
環境 fedora 2
postgresqlをインストールして
(postgresql-8.2.1)


make コンパイルがうまくいきません
[postgres@localhost postgresql-8.2.1]$ ./configure
checking build system type... i686-pc-linux-gnuoldld
checking host system type... i686-pc-linux-gnuoldld
checking which template to use... linux
checking whether to build with 64-bit integer date/time support... no
checking whether NLS is wanted... no
checking for default port number... 5432
checking for gcc... no
checking for cc... no
configure: error: no acceptable C compiler found in $PATH
See `config.log' for more details.

[postgres@localhost postgresql-8.2.1]$ make
You need to run the 'configure' program first. See the file
'INSTALL' for installation instructions.
make: *** [all] エラー 1

$ make とすると上記のようにエラーがでます。

./configure -オプション
が必要なのでしょうか?

よろしくおねがいします。

勉強中の身です。
環境 fedora 2
postgresqlをインストールして
(postgresql-8.2.1)


make コンパイルがうまくいきません
[postgres@localhost postgresql-8.2.1]$ ./configure
checking build system type... i686-pc-linux-gnuoldld
checking host system type... i686-pc-linux-gnuoldld
checking which template to use... linux
checking whether to build with 64-bit integer date/time support... no
checking whether NLS is wanted... no
checking for default port number... 5432
chec...続きを読む

Aベストアンサー

> failure. It is possible the compiler isn't looking in the
> proper directory.
> Use --without-readline to disable readline support.

configue で failure が出ているのに make をしても意味がありません。
すけさん、かくさんのまねをして「この failure が目に入らぬか!」といいたくなります。

次は readline を入れましょう。

yum が使えるのなら、
yum install readline-devel.i386
でいいはずです。

QCのプログラムがどうしても動きません

Cを勉強中なのですが、以下のプログラムがうまくいきません。
(studentは構造体で定義した型です。)


iが0でない5の倍数の時にreallocでメモリを増やそうと思ったのですが、
「21行目」(reallocの行)で記述エラーを発見しました。
「lvalue」を付け忘れています。
と表示されます。

どこが間違っているのでしょうか?教えてくださいm(_ _)m


#include<stdio.h>

typedef struct{
char name[20];
int year;
char sex[6];
}student;


void read_data(int,student*);
void write_data(int,student*);

int main(void){
student data[5];
int i=0,j=0;

do{
read_data(i,data);
i++;
if(i%5==0 && i!=0){
data=realloc(data,(sizeof(student))*(i+5));
}
}while(data[i-1].year!=-1);

}
for(j=0;j<i-1;j++){
write_data(j,data);
}
free(heap);
return 0;
}

void read_data(int i,student *data){
printf("%d人目\n",i);
printf("名前?\n",i);
scanf("%s",(data[i].name));
printf("年齢?\n",i);
scanf("%d",&(data[i].year));
printf("性別?\n",i);
scanf("%s",(data[i].sex));
return;
}
void write_data(int j,student *data){
printf("%d人目\t",j+1);
printf("名前:%s\n",data[j].name);
printf("年:%d\n",data[j].year);
printf("性:%s\n",data[j].sex);
return;
}

Cを勉強中なのですが、以下のプログラムがうまくいきません。
(studentは構造体で定義した型です。)


iが0でない5の倍数の時にreallocでメモリを増やそうと思ったのですが、
「21行目」(reallocの行)で記述エラーを発見しました。
「lvalue」を付け忘れています。
と表示されます。

どこが間違っているのでしょうか?教えてくださいm(_ _)m


#include<stdio.h>

typedef struct{
char name[20];
int year;
char sex[6];
}student;


void read_data(int,student*);
void write_data(int,student*);

int ma...続きを読む

Aベストアンサー

reallocはmallocやcallocで確保した領域を拡張するときに使うものです。
配列は拡張できません。
配列自体に = で代入することもできません

> 「lvalue」を付け忘れています。
わからないなら、エラーは正確に書きましょう。
「lvalue required as left operand of assignment」とかじゃないですか?
配列dataは代入や変更のできない右辺値(rvalue)で、代入や変更のできるlvalue(左辺値)ではない、ということです。


あと、{}の数間違えてませんか?
free(heap); も heapなんて変数は使われてませんが


人気Q&Aランキング

おすすめ情報