
粒子法の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 スキップ ==========
No.2ベストアンサー
- 回答日時:
#include <cstdlib> /* This line is necessary for C++ compiler.
Remove this line in C compiler */
コメントに「この行がC++コンパイラに必要です。 Cコンパイラでこの行を消してください。」と書いているので「mps.c」でCコンパイルしたいのであれば,この一行を消してみては?(解決するかわかりませんが、お試しとしてですが。)
尚,#1回答者さんはC++ソースに変更する対処案のようです。
ご回答ありがとうございます。
ご指摘された一行を消してみたら、ビルドできました。
今気付くと、以前に同様なことをやったのですが、コメントアウトの仕方が悪く、失敗していました。
これで色々試せそうです。
本当にありがとうございました。
No.1
- 回答日時:
こんばんは。
「mps.c」の拡張子を「mps.cpp」に変更してから、コンパイルして見ては如何でしょうか。
ご回答ありがとうございます。
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 個を超えました。コンパイルは中断されます。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
python エラー
-
エクセルのエラーメッセージ「4...
-
Excelのエラーで困ってます。
-
visual C++ でビルドの中止がで...
-
sys/time.hのインクルードがで...
-
コンパイルできません。
-
WindowsからLinuxへの移植
-
RightとLeft関数のライブ...
-
fortranでプログラムを実行する...
-
BC30002: 型 'ListItem' が定義...
-
Visual Basic でサポートされて...
-
C言語のコンパイルができなく...
-
HANDLEの宣言でのエラー
-
VC++でboolがエラーになる
-
OpenSSLでOPENSSL_Applinkが見...
-
HEWを使用しているのですが、こ...
-
VB2008で定数に色の設定をした...
-
左側がクラス、構造体、共用体...
-
デバッグ中のエラーのことで教...
-
ビルドが失敗してしまいます
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
python エラー
-
エクセルのエラーメッセージ「4...
-
Excelのエラーで困ってます。
-
適切な変換関数が存在しない???
-
fortranでプログラムを実行する...
-
コンパイルできません。
-
ビルド失敗 指定されたファイ...
-
VB2008で定数に色の設定をした...
-
バッチからsqlplusの接続エラー...
-
HEWを使用しているのですが、こ...
-
デバッグ中のエラーのことで教...
-
visual C++ でビルドの中止がで...
-
DLL関数を使ったプログラム
-
Arduinoに関する質問
-
sys/time.hのインクルードがで...
-
Visual Studioのstrcpy_sについて
-
BC30002: 型 'ListItem' が定義...
-
RightとLeft関数のライブ...
-
VBAでファイルを開くプログラム...
-
HANDLEの宣言でのエラー
おすすめ情報