f2c コンバーター ( f2c ) を使用して一部のレガシー Fortran コードを C に変換し、Windows 7 (64 ビット) で Cmake を使用して Visual Studio 10 ソリューションを作成しました。また、C++ プログラム (メイン関数を含む test.cpp) を f2c ライブラリ (システム上で nmake を使用して構築) にリンクする必要もありました。私は CMake と Visual Studio を幅広く使用してきましたが、プログラムをコンパイルした後、Visual Studio に同梱されているヘッダー ファイルに関連する不可解なエラーが多数表示されます。
2>C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\intrin.h(141): error C2059: syntax error : '('
2>C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\intrin.h(141): error C2059: syntax error : '-'
2>C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\intrin.h(141): error C2059: syntax error : ')'
2>C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xcomplex(250): error C2027: use of undefined type '_Ty'
2>C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xcomplex(250): error C2226: syntax error : unexpected type 'std::complex<_Other>'
2>C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xcomplex(250): error C2988: unrecognizable template declaration/definition
2>C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xcomplex(250): error C2059: syntax error : '-'
2>C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xcomplex(250): error C2065: '_Ty' : undeclared identifier
2>C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xcomplex(250): error C2059: syntax error : ')'
2>C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xcomplex(263): error C2065: '_Ty' : undeclared identifier
2>C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xcomplex(263): error C2065: '_Ty' : undeclared identifier
2>C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xcomplex(264): error C2143: syntax error : missing ';' before '{'
2>C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xcomplex(264): error C2447: '{' : missing function header (old-style formal list?)
Visual Studio ソリューション ファイルを最初から作成してもうまくいかないようで、同じエラーが引き続き発生します。これらのエラーの問題を追跡するにはどうすればよいですか? 明らかに、私がインクルードまたは作成したファイルに何か問題がありますが、それは何でしょうか? エラーはすぐにコードの特定のセクションを指していないため、デバッグは困難です。
f2c.h ヘッダー ファイル ( f2c.h ) へのリンクは次のとおりです。私は追加しました
#ifdef __cplusplus
extern "C" {
#endif
上へと
#ifdef __cplusplus
}
#endi
私のtest.cppはC++プログラムなので、このヘッダーファイルの一番下に。