• ベストアンサー

Cのプログラムがコンパイル出来なくて困っています。

初めまして、こんにちは。初心者ですがよろしくお願いします。 Cのプログラムがコンパイル出来なくて困っています。 プログラムの内容は #include<stdio.h> main(void) { printf("test\n"); return 0; } という簡単な内容で問題点はないのですが、以下のようなエラーが出てきます。 ビルド開始 C:\FF90\bin\fcc /c @C:\DOCUME~1\root\LOCALS~1\Temp\lyliomph.src Bad file descriptor cpp: 重大なエラー: 致命的なエラーを検出しました。翻訳を終了します。 ビルド処理を中断しました。 ビルド中断 他のパソコンでは実行する事が出来るのですが私がいつも使用しているパソコンのみ実行する事が出来なくて困っています。 使用しているコンパイラは「Fortran 90/C Workbench 開発マネージャ V1.0L21」です。 エラー2行目の「C:\FF90\bin\fcc /c @C:\DOCUME~1\root\LOCALS~1\Temp\lyliomph.src」に何かあるのかと思い、見たのですがそれらしき物も見当たりません。 環境変数もちゃんと設定していますし、他のコンパイラ(CPad for Borland C++Compiler や cygwin)でも実行する事が出来なく、また、上記のプログラム以外のプログラムでも同じエラーが出てきます。 もう私程度の知識ではどのような原因があるのか分からず、八方塞で困っています。 言葉足らずな部分が多々あるかと思いますがどうかよろしくお願いします。

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

  • ベストアンサー
  • Oh-Orange
  • ベストアンサー率63% (854/1345)
回答No.6

★ファイルの文字コードはどうですか? ・『Fortran 90/C Workbench 開発マネージャ V1.0L21』は全く詳しくありませんが、  ソースファイルの文字コードがシフト JIS コードか、Unicode かの読み込みオプションが  あって、そこの指定が異なっているからエラーが出るなんて事ありますか? ・通常、ソースファイルの文字コードはシフト JIS コードですよね。でも、もしかしたら? ・参考までに確認などをそうぞ。 ・以上。

Lydiard
質問者

お礼

私のPCでは使えないという結論になり、他のPCを使うこととなりました。 たくさん回答を探して頂き本当に有難うございました。

Lydiard
質問者

補足

先ほどやっと、『Fortran 90/C Workbench 開発マネージャ V1.0L21』の文字コードの設定を探し出す事が出来ました。 ファイルのコード系は『シフトJIS』になっていました。 どうやらこれが原因ではないようです。

その他の回答 (6)

  • jacta
  • ベストアンサー率26% (845/3158)
回答No.7

> また、Borland C++ Compilerの場合、パスが「C:\borland」の時のみ> 問題なく実行できました。 > 「C:\borland」以外の場所ではすべて上記のエラーが出ます。 > 「このパスのみでしか使えない。」こんな事あるのでしょうか? PATH環境変数の設定次第かと思います。

Lydiard
質問者

お礼

有難うございます。 『Borland C++ Compiler』の場合は、基本設定の『標準のデータ保存フォルダ』を変更した結果、他のパスでも実行できました。 どうやら、『開発マネージャ』の方に問題があるようです。

  • Oh-Orange
  • ベストアンサー率63% (854/1345)
回答No.5

★エラーメッセージから推測すると『#』文字が原因かも? ・『Bad file descriptor』というのは、『ファイルの記述子が不正』って事だよね。 ・過去に似たような質問がありまして、拡張子を『c』から『cpp』にするとコンパイルできた。  でも、『#』文字でエラーが出るという事でした。 ・それで最後の方で、アンインストールしてから、もう一度、インストールし直してみては?と  アドバイスしましたら、再インストールとその他も再設定したらば直ったようです。 ・よって、とりあえず再インストールを試してみて下さい。 ・また、下の『参考URL』を参照して下さい。→『コンパイル時のエラーについて教えてください』 ・回答者 No.9、No.10、No.13、No.14 です。 ・以上。おわり。

参考URL:
http://oshiete1.goo.ne.jp/qa2637280.html
Lydiard
質問者

補足

回答、有難うございます。 こちらの質問はこの質問前に参考にさせていただいてました・・・ すみません、丁寧に解答して頂いているのに解決できなくて。 拡張子を『c』から『cpp』ですが、 「Fortran 90/C Workbench 開発マネージャ V1.0L21」の場合は、元々Cのみのコンパイラなので実行できませんでした。 「Borland C++ Compiler」の場合はパスが「C:\borland」の時のみ問題なく実行でき、それ以外の場所では実行できませんでした。 「Fortran 90/C Workbench 開発マネージャ V1.0L21」や「Borland C++ Compiler」を再インストールしてみましたが、同じでした。 『#include <stdio.h>』の行ですが、省いてみても結果は全く同じでした。 また、コンパイラ同士が競合しているのかと思い、他のコンパイラをアンインストールしてそれぞれ一つずつ試してみたのですがダメでした。 あと、初歩的なことですが、全角と半角は間違えていません。 私の結論ですが、 「Fortran 90/C Workbench 開発マネージャ V1.0L21」は私のPCでは使うことが出来ない。 「Borland C++ Compiler」では、パスが「C:\borland」の時のみ私のPCでは実行できる。 となってきました。 実は、「開発マネージャを使って、ある衛星の観測データを読み込みなさい」と言われ、その開発マネージャが使えなくて困っていたんです。 そのプログラムはBorlandやcygwinでは対応不十分により使えないようで・・・ この質問はこちらの質問とは関係ないので、また別に質問したいと思います。

  • jacta
  • ベストアンサー率26% (845/3158)
回答No.4

> 他のコンパイラ(CPad for Borland C++Compiler や cygwin)でも実行する事が出来なく、 Borland C++ CompilerやCygwinで試したときのエラーメッセージを補足してみてください。手がかりになるかもしれません。

Lydiard
質問者

補足

Borland C++ Compilerのエラーはこちらが出ます。 MAKE Version 5.2 Copyright (c) 1987, 2000 Borland Error makefile 3: Colon expected *** 1 errors during make *** また、Borland C++ Compilerの場合、パスが「C:\borland」の時のみ問題なく実行できました。 「C:\borland」以外の場所ではすべて上記のエラーが出ます。 「このパスのみでしか使えない。」こんな事あるのでしょうか? cygwinはすみません。使わないと判断してしまったためアンインストールしてしまいました。

  • E07Kaz
  • ベストアンサー率15% (5/32)
回答No.3

では、パスに続いて、 成功している時と失敗している時の アカウントはどうなっていますか? エラーメッセージでrootというユーザーのディレクトリが でていますね。 実行時のアカウントがrootなら問題ないのですが、 他のユーザーなら問題だと思います。

Lydiard
質問者

補足

すみません、それも質問前に試してみましたがダメでした。 すみません、初歩的な質問ですが『administrator』と『root』は同じ事ですよね? 的外れな事を言っていないかちょっと不安で・・・ この方法は知り合いの方がやっていたので・・・

  • E07Kaz
  • ベストアンサー率15% (5/32)
回答No.2

他のPCでのコンパイル時も、 同じような場所に、ソースファイルを置かれていますか? 今回にしろ、成功している時にしろ、 ファイルの置き場所の情報をお願いします。 以前、某ソフトで、デスクトップに置いたファイルは なぜか、読み込めないということがありました。

Lydiard
質問者

補足

他のPCでのコンパイル時も、同じような場所にソースファイルを置いています。 (他のPCで成功している場所は下記のすべてです。) ファイルの置き場所ですが、パスが原因かなと思い色々な場所に置いたのですがダメでした。 試したのは C:\ C:\FF90 C:\FF90\sample\C D:\ E:\ (←関係ないかもしれませんが外付けHDDです。) etc. もう原因が分からないので手当たり次第でした・・・ デスクトップ上では読み込めない場合があることは知っていましたので、プログラムを実行する時にはソースファイルを置いたことはないです。

  • Oh-Orange
  • ベストアンサー率63% (854/1345)
回答No.1

★単純に拡張子を『src』から『c』にしてみては? ・C言語ですので拡張子は『c』にすべきと思います。 ・以上。短いですが、確認して下さい。

Lydiard
質問者

補足

文章力がなくて、すみませんでした! プログラム名はtest.cでちゃんと拡張子は『c』となっています。 『src』はエラーの時に出てきた拡張子です。

関連するQ&A

専門家に質問してみよう