重要なお知らせ

「教えて! goo」は2025年9月17日(水)をもちまして、サービスを終了いたします。詳細はこちら>

電子書籍の厳選無料作品が豊富!

お世話になります。下のような初歩的なCプログラムですが、"XPhome"2機種、"Win2K"2機種でそれぞれ、Dev-C++4.9.9.0でコンパイルできる機種とできない機種(すべてノートPC)がありました。機種によってコンパイラーソフトの相性などあるのでしょうか?

当方一応パスカル初歩程度の実力です。Cを本格的に勉強し、C++にも手を伸ばしたいと考えています。よろしくお願いいたします。機種が多いのは、場所移動で使い分けているためです。

コンパイル成功機種
1)XP(SP3): (CereronM 800Mhz, RAM768M)
2)Win2K(SP4) : (VIA C7-M ULV 1GHz, RAM 1G )

コンパイル失敗機種
3)XP(SP3): (CereronM 800Mhz)
エラーメッセージ:
[Linker error] undefined reference to `__cpu_features_init'
ld returned 1 exit status

4)Win2K(SP4) : (Transmeta Crusoe TM5800, RAM512M )
エラーメッセージ:
 cpp[switches] input output
gnu89, gnu9x, c89, c9x, iso9899:1990,
Too many aruguments
***************
#include <stdio.h>

int main()
{
char c;

c=getchar();
putchar(c);
printf("\n");
system("PAUSE");
}
****************

A 回答 (3件)

>正常コンパイルできなければできる機種をうまく移動して使う予定ですが、このように機種(CPU)またはマザーボードなどによってうまくいかないことはあるのでしょうか?過去パスカル勉強中でも機種によっては、動かないこともあり、学習の挫折にいたったことが度々あります。



CPUに依存したプログラムを書けないこともないですが、質問内容に書かれているプログラムにはそのような点はないです。
エラーメッセージからすると3,4で動作しているCコンパイラやリンカーが1,2とは異なるような気がします(エラーメッセージ的にはリンクするライブラリの指定間違いやCプリプロセッサのオプション指定間違いなのでCPU依存などとは関係ありません)。
1~4それぞれ色々なCコンパイラを入れていたりしませんか?

1~4のそれぞれでコンパイル開始時から終了するまでに出力されるメッセージを見比べる事で何かわかるかも。
    • good
    • 0
この回答へのお礼

エラーメッセージの判断ありがとうございます。インストールしなおしたり、バージョンを落としたりしましたが、だめな機種ややはりだめでした。またよろしくお願いいたします。

お礼日時:2013/07/06 20:44

記憶が正しければ、getcharの戻り値はint型の筈です。



又、system関数は環境依存が激しかったはずです。
ノートPCではコンパイルできないとの事ですので、その周りを調べてみてはどうでしょう?
    • good
    • 0
この回答へのお礼

ノートPCではコンパイル無理ですか?できるのもありますし、そうでないのもあります。デスクトップで試してみます。一般的なPCというものは存在しないようですね。またよろしくお願いいたします。

お礼日時:2013/07/06 20:47

C言語の文法というよりは、コンパイラオプションやリンクオプションの失敗のような。


どのようにコンパイル・リンクされているのでしょうか?

この回答への補足

ありがとうございます。

フリーコンパイラーですが、「Dev-C++」IDE環境と呼ばれ、最近のGUIのような統合環境で動いています。「Dev-C++」をインストールすると自動的に、MinGWというunix系の「gcc」や「gcc++」などその他のコンパイラーなどがインストールされます。

簡単なプログラムの練習のような気持ちで"Excute"メニューの"compile & run"などでコンパイルしております。4機種にはすべて同じ形で、「Dev-C++」をインストールしたつもりです。path設定などは統合環境なので自動的になされているとは思いますが。

他のフリーコンパイラー「LSIC86」や「Borland C++55」でもコンパイル動作はできます(エラーメッセージは出てきません)。コマンドプロンプト画面は静止しますが、プログラムが実行された結果にはなっていません。これはコンパイル失敗機種で起こります。

正常コンパイルできなければできる機種をうまく移動して使う予定ですが、このように機種(CPU)またはマザーボードなどによってうまくいかないことはあるのでしょうか?過去パスカル勉強中でも機種によっては、動かないこともあり、学習の挫折にいたったことが度々あります。

補足日時:2013/07/06 15:08
    • good
    • 0
この回答へのお礼

たびたびお答えいただきありがとうございます。どうもうまくいかないようで、動くノートPCでやることに決めました。他のコンパイラーも試してみたいと思います。またよろしくお願いいたします。

お礼日時:2013/07/06 20:51

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