- ベストアンサー
BCC・stdio.h・_stddef.hのエラー
BCCと同梱されているstdio.hのエラーなのですが、 stdio.hのエラーは他では出なかったので、 ソース自体がおかしいのかと思っていますが、よく分かりません。 一応ソースを載せます。 #include <stdio.h> int main(int argc, char *argv[]) { if(argv[1] == "") { printf("---(Ver1.00.01)\n"); printf("easy.exe [filename]\n"); printf(" [filename] - ファイル名を指定してください.\n"); } return 0; } これによって次のエラーを吐いてきます。 エラー E2040 C:\[本名のローマ字表記] Program Files\Borland\bcc32\include\_stddef.h 53: 宣言が正しく終了していない エラー E2040 C:\[本名のローマ字表記] Program Files\Borland\bcc32\include\_stddef.h 72: 宣言が正しく終了していない エラー E2040 C:\[本名のローマ字表記] Program Files\Borland\bcc32\include\stdio.h 51: 宣言が正しく終了していない エラー E2040 C:\[本名のローマ字表記] Program Files\Borland\bcc32\include\stdio.h 104: 宣言が正しく終了していない エラー E2040 C:\[本名のローマ字表記] Program Files\Borland\bcc32\include\stdio.h 105: 宣言が正しく終了していない エラー E2293 C:\[本名のローマ字表記] Program Files\Borland\bcc32\include\stdio.h 140: ) が必要 エラー E2040 C:\[本名のローマ字表記] Program Files\Borland\bcc32\include\stdio.h 150: 宣言が正しく終了していない エラー E2040 C:\[本名のローマ字表記] Program Files\Borland\bcc32\include\stdio.h 151: 宣言が正しく終了していない エラー E2040 C:\[本名のローマ字表記] Program Files\Borland\bcc32\include\stdio.h 152: 宣言が正しく終了していない エラー E2040 C:\[本名のローマ字表記] Program Files\Borland\bcc32\include\stdio.h 154: 宣言が正しく終了していない エラー E2293 C:\[本名のローマ字表記] Program Files\Borland\bcc32\include\stdio.h 155: ) が必要 エラー E2293 C:\[本名のローマ字表記] Program Files\Borland\bcc32\include\stdio.h 156: ) が必要 エラー E2040 C:\[本名のローマ字表記] Program Files\Borland\bcc32\include\stdio.h 160: 宣言が正しく終了していない エラー E2040 C:\[本名のローマ字表記] Program Files\Borland\bcc32\include\stdio.h 161: 宣言が正しく終了していない エラー E2040 C:\[本名のローマ字表記] Program Files\Borland\bcc32\include\stdio.h 162: 宣言が正しく終了していない エラー E2040 C:\[本名のローマ字表記] Program Files\Borland\bcc32\include\stdio.h 164: 宣言が正しく終了していない エラー E2040 C:\[本名のローマ字表記] Program Files\Borland\bcc32\include\stdio.h 165: 宣言が正しく終了していない エラー E2141 C:\[本名のローマ字表記] Program Files\Borland\bcc32\include\stdio.h 166: 宣言の構文エラー エラー E2040 C:\[本名のローマ字表記] Program Files\Borland\bcc32\include\stdio.h 172: 宣言が正しく終了していない エラー E2040 C:\[本名のローマ字表記] Program Files\Borland\bcc32\include\stdio.h 173: 宣言が正しく終了していない エラー E2040 C:\[本名のローマ字表記] Program Files\Borland\bcc32\include\stdio.h 174: 宣言が正しく終了していない エラー E2040 C:\[本名のローマ字表記] Program Files\Borland\bcc32\include\stdio.h 175: 宣言が正しく終了していない エラー E2141 C:\[本名のローマ字表記] Program Files\Borland\bcc32\include\stdio.h 177: 宣言の構文エラー エラー E2040 C:\[本名のローマ字表記] Program Files\Borland\bcc32\include\stdio.h 181: 宣言が正しく終了していない エラー E2040 C:\[本名のローマ字表記] Program Files\Borland\bcc32\include\stdio.h 188: 宣言が正しく終了していない エラー E2228 C:\[本名のローマ字表記] Program Files\Borland\bcc32\include\stdio.h 188: エラーあるいは警告が多すぎる stdio.h,_stddef.hのソースは一切変えたりしていません。 また、BCCのエラーは、stdio.hとprintfを抜いて int main(int argc, char *argv[]) { if(argv[1] == "") { } return 0; } としたときに 宣言が正しく終了していない と表示されます。 環境は WindowsXP SP1 BCC Developer です。 よろしくお願いします。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
もしNO3さんの方法を試してもダメで、使用しているのが試供版のBCCでしたら、Borlandフォルダ以下をルートに変えてみてください。 スペースを含むパスに弱いのかもしれません。
その他の回答 (3)
- favoritthingis
- ベストアンサー率50% (13/26)
>stdio.hのエラーは他では出なかったので、 >ソース自体がおかしいのかと思っていますが、よく分かりません。 bcc32.cfg ilink32.cfg を設定しましたか? それとパス設定 こちらのbcc551ではコンパイルは、とおりますよ
お礼
ご回答ありがとうございます。 一応setbccを使ってbcc32.cfg,ilink32.cfg,環境変数は設定済みです。 それでも上手く行きませんでした。
- php504
- ベストアンサー率42% (926/2160)
BCC Developerでソースをコピーしてコンパイルしましたがエラーは出ませんでした 質問とは関係ないと思われますが argv[1] == "" は間違いですね argcの値でチェックしたほうがいいと思います
お礼
ご回答ありがとうございます。 猫でもわかるC言語プログラミングという本を見ると argcの値は自身までのパス+自身の名前となっていたので自分の意図していたもの(コマンドラインからのオプションだけを取得する)では無いので、 argcの値ではチェックしませんでした。
>BCCと同梱されているstdio.hのエラーなのですが、 当方のBorland C++ Compilerでは、その現象には見舞われませんでした。 Borland C++ Compilerをもう一度インストールしてみてはいかがでしょうか。
お礼
ご回答ありがとうございます。 このソースとは違うソースだとstdio.hからエラーを出してこないので、多分ファイルが欠けていることは無いと思っています。
お礼
ご回答ありがとうございます。 BCCのバージョンは5.5.1で「猫でも分かるC言語プログラミング」という本から入手しました。 もしかしたら、1839ccさんの言うようにスペースを含むパスに弱いかもしれないので、 また今度ルートを変えてみようと思います。