こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

粒子法プログラムのビルドエラー(cstdlibのエラー)

粒子法のMPS法のプログラミングをしているのですが、C++でmps.cをビルドをすると、cstdlibのエラーが出てビルドが出来ません。
mps.cの本文中にはエラーは無く、visual studio 9.0にあるcstdlibの構文エラーが出てしまいます。
最初から入っているライブラリファイルが間違っているとは思えません。
解決法を教えてください。お願いします。

↓ mps.c内でcstdlibを使っている場所 ↓
#include <cstdlib> /* This line is necessary for C++ compiler.
Remove this line in C compiler */
#include <stdio.h>
#include <sys/types.h>
#include <math.h>
#include <string.h>

↓ エラーメッセージ ↓
1>コンパイルしています...
1>mps.c
1>c:\program files\microsoft visual studio 9.0\vc\include\cstdlib(21) : error C2143: 構文エラー : '{' が ':' の前にありません。
1>c:\program files\microsoft visual studio 9.0\vc\include\cstdlib(21) : error C2059: 構文エラー : ':'
1>c:\program files\microsoft visual studio 9.0\vc\include\cstdlib(21) : error C2143: 構文エラー : '{' が ':' の前にありません。
1>c:\program files\microsoft visual studio 9.0\vc\include\cstdlib(21) : error C2059: 構文エラー : ':'
1>c:\program files\microsoft visual studio 9.0\vc\include\cstdlib(21) : error C2143: 構文エラー : '{' が ':' の前にありません。
1>c:\program files\microsoft visual studio 9.0\vc\include\cstdlib(21) : error C2059: 構文エラー : ':'

省略(21行目のエラーが23~32行目まで同じエラーが続く)

1>MPS3000 - エラー 62、警告 0
========== すべてリビルド: 0 正常終了、1 失敗、0 スキップ ==========

投稿日時 - 2009-10-05 18:00:42

QNo.5344101

困ってます

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

#include <cstdlib> /* This line is necessary for C++ compiler.
Remove this line in C compiler */

コメントに「この行がC++コンパイラに必要です。 Cコンパイラでこの行を消してください。」と書いているので「mps.c」でCコンパイルしたいのであれば,この一行を消してみては?(解決するかわかりませんが、お試しとしてですが。)
尚,#1回答者さんはC++ソースに変更する対処案のようです。

投稿日時 - 2009-10-05 19:50:15

お礼

ご回答ありがとうございます。

ご指摘された一行を消してみたら、ビルドできました。

今気付くと、以前に同様なことをやったのですが、コメントアウトの仕方が悪く、失敗していました。

これで色々試せそうです。
本当にありがとうございました。

投稿日時 - 2009-10-06 15:31:03

ANo.2

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(2)

ANo.1

 こんばんは。

 「mps.c」の拡張子を「mps.cpp」に変更してから、コンパイルして見ては如何でしょうか。

投稿日時 - 2009-10-05 18:11:07

お礼

ご回答ありがとうございます。
mps.cをmps.cppに変更してやってみたのですが、mps.cpp内のエラーが100個以上発生してしまいます。

mps.cpp(130) : error C2660: 'filecheckopen' : 関数に 3 個の引数を指定できません。
mps.cpp(131) : error C2660: 'filecheckopen' : 関数に 3 個の引数を指定できません。

省略

mps.cpp(518) : error C2065: 'neigh' : 定義されていない識別子です。
mps.cpp(518) : error C2065: 'rep2' : 定義されていない識別子です。
mps.cpp(518) : error C2065: 'neigh_iccg' : 定義されていない識別子です。
mps.cpp(518) : error C2065: 'reiccg2' : 定義されていない識別子です。
mps.cpp(518) : error C2065: 'wall_type' : 定義されていない識別子です。
mps.cpp(518) : fatal error C1003: プログラム内のエラーが 100 個を超えました。コンパイルは中断されます。

投稿日時 - 2009-10-06 14:40:33

あなたにオススメの質問