コンパイラの機種によって成功・不成功?

このQ&Aのポイント
  • コンパイラの機種によって、Cプログラムのコンパイルが成功するかどうかが異なることがあります。
  • ある初歩的なCプログラムが、一部の機種ではDev-C++4.9.9.0でコンパイルできるが、他の機種ではコンパイルできない現象が発生しています。
  • このような機種ごとのコンパイラの相性の違いについて、原因や解決策について考えてみましょう。
回答を見る
  • ベストアンサー

コンパイラの機種によって成功・不成功?

お世話になります。下のような初歩的な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"); } ****************

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

  • ベストアンサー
  • wormhole
  • ベストアンサー率28% (1619/5652)
回答No.3

>正常コンパイルできなければできる機種をうまく移動して使う予定ですが、このように機種(CPU)またはマザーボードなどによってうまくいかないことはあるのでしょうか?過去パスカル勉強中でも機種によっては、動かないこともあり、学習の挫折にいたったことが度々あります。 CPUに依存したプログラムを書けないこともないですが、質問内容に書かれているプログラムにはそのような点はないです。 エラーメッセージからすると3,4で動作しているCコンパイラやリンカーが1,2とは異なるような気がします(エラーメッセージ的にはリンクするライブラリの指定間違いやCプリプロセッサのオプション指定間違いなのでCPU依存などとは関係ありません)。 1~4それぞれ色々なCコンパイラを入れていたりしませんか? 1~4のそれぞれでコンパイル開始時から終了するまでに出力されるメッセージを見比べる事で何かわかるかも。

jjubilee
質問者

お礼

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

その他の回答 (2)

回答No.2

記憶が正しければ、getcharの戻り値はint型の筈です。 又、system関数は環境依存が激しかったはずです。 ノートPCではコンパイルできないとの事ですので、その周りを調べてみてはどうでしょう?

jjubilee
質問者

お礼

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

  • ok-kaneto
  • ベストアンサー率39% (1798/4531)
回答No.1

C言語の文法というよりは、コンパイラオプションやリンクオプションの失敗のような。 どのようにコンパイル・リンクされているのでしょうか?

jjubilee
質問者

お礼

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

jjubilee
質問者

補足

ありがとうございます。 フリーコンパイラーですが、「Dev-C++」IDE環境と呼ばれ、最近のGUIのような統合環境で動いています。「Dev-C++」をインストールすると自動的に、MinGWというunix系の「gcc」や「gcc++」などその他のコンパイラーなどがインストールされます。 簡単なプログラムの練習のような気持ちで"Excute"メニューの"compile & run"などでコンパイルしております。4機種にはすべて同じ形で、「Dev-C++」をインストールしたつもりです。path設定などは統合環境なので自動的になされているとは思いますが。 他のフリーコンパイラー「LSIC86」や「Borland C++55」でもコンパイル動作はできます(エラーメッセージは出てきません)。コマンドプロンプト画面は静止しますが、プログラムが実行された結果にはなっていません。これはコンパイル失敗機種で起こります。 正常コンパイルできなければできる機種をうまく移動して使う予定ですが、このように機種(CPU)またはマザーボードなどによってうまくいかないことはあるのでしょうか?過去パスカル勉強中でも機種によっては、動かないこともあり、学習の挫折にいたったことが度々あります。

関連するQ&A

  • GNUコンパイラとIntelコンパイラの違いについて

    今回fortranとC言語で書かれたWindows用プログラムをLinux用に移植することになりました。GNUのコンパイラを使用し無事コンパイルできたので実行したのですが"Segmentation fault"となりうまく実行できませんでした。そこで試しにIntelのコンパイラを使用しコンパイルしてみたところGNUのときとは違い"Segmentation fault"とは出ず、プログラム内のエラーチェックに引っかかり止ってしまいました。同じソースコードにもかかわらず止まる箇所が異なります。 今まで考えたことがなかったのですがGNUとIntelのコンパイラの違いはなんなのでしょうか?また、この二つ以外にいいコンパイラはあるのでしょうか?

  • Crusoeを使うことで予想される問題ってありますか?

    Transmeta社のCrusoeのCPUのミニノートを買おうと思っています. 理由は、オークション等での安さと、サブ機なので無駄に高スペックの機種は必要ないから.どうせ落して壊すのが関の山と考えているので. で、ハードのことはあまり分からないのですが、スペック以外でCrusoeのCPUを使う上で問題ってありますか? delphiでソフト開発とかも、趣味でしているので、コンパイルができないとか、特殊なソフト(ガン解析ボランディアソフトUDとか)がきちんと動作しないとか.LINUX化ができないとか. 特定のハードで不具合が起きているとか. CPUを特定してベンチマークを取るソフトとかは、別に動かなくてもいいのですが. 宜しくお願いします.

  • Bloodshed Dev-C++というコンパイラなんですが・・・

    右も左もわからない超初心者ですが、プログラムの勉強を始めました。 参考書を見ながらタイトルのDev-C++というソフトでプリントFの文章をそっくり打ってコンパイルしてみたのですが C:\Dev-Cpp\test\Makefile.win [Build Error] [main.o] Error 1 という文章が出てきてしまいます。 何度やってもだめなので、新規作成からそのままコンパイルしてみてもだめでした。 別のPCで同じようにみたら、プリントFで打った文章もコンパイルされましたし、新規作成からコンパイルするとちゃんと真っ黒な画面が出ました。 私が使っているのは、マックブックで、それにブートキャンプでXPを入れているのですが、それがまずいのでしょうか?OSがネイティブで動くとのことでしたので考えにくいかと思うのですが、比較してみると沿うとしか考えられなくて困っています。 エラーの文章の意味とあわせて教えていただけると助かります><

  • windows98の起動が遅くて

    win95よりwin98SEにアップグレードしましたが、起動が遅くて、たまりません。 早くする方法を、教えていただけませんでしょうか。 機種はnecバリュースターの200MHZ CPU RAM32m HD4G LANアリ ソフトも遅くて、助けてください

  • C言語コンパイラーエラーについて教えてください。

    C言語でコンパイルができなくて困っています。 コンパイルをすると、 ----------------------------------------- test.c.20:undefined reference to `getcury' test.c:20: undefined reference to `getcurx' collect2: ld returned 1 exit status ----------------------------------------- と言うエラーが出てしまい、コンパイルが完了しません。 ソースは、「test.c」と言うファイルネームで、内容は ----------------------------------------- #include <stdio.h> #include <stdlib.h> #include <curses.h> int main (void) { int y = 0, x = 0; initscr(); getyx(curscr, y, x); printw("x = %d, y = %d", x, y); refresh(); getchar(); endwin(); return 0; } ----------------------------------------- です。 OSは、Windows7 Professional SP1 コンパイラーは、MinGW Ver5.1.6. で、コマンドは gcc -o test.exe test.c -lcurses です。 確かに、curses へはパスも通っており、リンクできているようなんですが、 エラーが出てしまいます。 どうすれば良いのかわからず、大変困っています。 だれかご存知の方、教えてください。 どうかよろしくお願い致します。

  • auの周波数が機種によって違う??(お勧めの機種)

    先日質問させていただいて、携帯をsoftbankからauに変えようと思います。 1番の理由は電波状態です(800MHZというのが大変魅力なものだと知りました)。 で、機種で迷っているのですが(3月中に購入予定です)、「w51ca」がすごく人気があるみたいなので調べてみると、http://ja.wikipedia.org/wiki/W51CA の右のほうに、(通信方式800MHz/2GHz帯を使用)と書いてあります。 例えば、http://ja.wikipedia.org/wiki/W41H で「w41h」を見てみると、、(通信方式800MHz帯を使用)と書いてますし、機種によっては、http://ja.wikipedia.org/wiki/W41K などでCDMA 1X WINとしか書かれていないものもあるんです。 これは同じwinでも何か違うのでしょうか。違うとすればどの方式のものが電波状況が平均的にいいのでしょう。 それと、http://k-tai21.net/ketai-data/hikaku/index.html の「メーカー別特徴」というところで、機種の違いがありますが、電波の良さなども違ってると書かれています。実際にそのようなことはあるのでしょうか。 僕は1番のこだわりは電波の良さで、2番はカメラや待ちうけの画質の良さにこだわっています。もし、お勧めの機種があれば教えていただけないでしょうか。 何個もURLを出してややこしくなったりしたことをお詫びします。 どうかよろしくお願いします。

  • BCB5 「コンパイラ内部エラー」の回避方法

    Borland C++ Builder5 を使っています。 WindowsXP Pro SP2の環境です。 ダイアログを表示するプログラムを作ろうとすると、コンパイルエラーになります。 この回避方法をお教え下さい。 親Form1のメニューを選択した時に OptionDlg->ShowModal(); で表示しようとしています。 OptionDlgは、「ファイル-新規-ダイアログ」で作ったダイアログです。 ダイアログのNameプロパティに「OptionDlg」と指定し、ソースはOptionDlgu.cppで 登録しました。 親Formで、ヘッダーファイルの追加もしています。 このような状態でコンパイルすると、 sysutils.hpp( ):F1004コンパイラ内部のエラー というメッセージが出て、コンパイル出来ません。 上記の方法で、ダイアログを表示するだけのサンプルプログラムを作ると、 正常にコンパイル出来ます。 初心者の私には、sysutils.hppが何を記述している部分なのか理解出来ていない のですが、今までにも同様の手順でダイアログを出すプログラムを作っていて、 何も問題なかったので、途方に暮れています。

  • YouTubeが見れない

    最近譲り受けたノートPC(OS,win2k,SP4,CPU300MHz,256RAM,ADSL1Mにて使用) ですが、ヤフオクの商品画像などが何故か別ウィンドウでも表示されません。 それとYoUTubeなんですが、ストリーミングなども最初はまずまずストリーミングも出来てたのですが今はまったく駄目で、フラシュプレーヤーなども更新したんですが見れません。 スペック、回線等上記に記したようにある程度は納得の上ですが、何か 改善策などあれば教授ください。 MTUなどはいじっていません(良く判らないので)。

  • DVD-RAM/Rのお勧め機種

    過去ログなども拝見しまして、色々と考えた後にこの質問をしています。 DVD-RAM/Rドライブ購入を考えてるのですが、気に入った機種が見つからず、値段などの問題もあり時期を見逃していました。(後田舎なので店の品揃えが・・・) 購入した際にドライブですることは・・・(1)Ramにデジカメでとった動画や写真、その他を保存、 (2)DVD-Rに入れて市販のDVDデッキで再生できるようにしたい。 自宅のパソコンと(Win2k,Pen4)、別のパソコン(Win98,CPU-250Mhzぐらい)に接続したいため外付けを希望してます。 前まではIEEE外付けを買って自宅用のパソコンだけで使用してもいいかなとおもってたのですが(IEEEボードは現在無し)、やはり他のパソコンでも使えたらより良いですネ^^ USB2.0系ならUSB1.0がついているPCでも使用できるそうなので今はそちら方面で検索してます。でもUSB2.0と1.0ってケーブルとか同じなのでしょうか?そこんとこも良く判りません。お勧めのDVD-RAM/Rドライブと、出来ればUSB2.0と1.0の関係も教えて下さい。宜しく御願します。 ちなみに、現在購入を考えてるのはべ○ト電気Computownで見かけたUSB2.0,1.0外付けのDVD-RAM/Rドライブで値段は4万円でした。(会社は忘れてしまった)

  • MS-DOSプロンプトの使い方について教えてください。

    初歩的な質問ですみません。 Win98SEを使っているんですが、コンパイルしたときにエラーが大量発生すると 最初の方のエラーが見えません。 どうやったら全部のエラーを見られますか? あと↑を使って前に打ったものをもう一度打ち直さなくても済むようにしたいのですが、出来ますか? よろしくお願いします。

    • ベストアンサー
    • Java