2017-12-13 6 views
0

私はinclude/math.h:379:20: error: expected identifier or '(' before numeric constantC++ - のextern int型(ダブル)

エラーは、次の行

extern int __cdecl __isnan (double); 
extern int __cdecl __isnanf (float); 
extern int __cdecl __isnanl (long double); 
からである mingw/include/math.h

エラー状態をファイルに起因するプログラムを構築しようとしているエラーを受信して​​います

コンパイラで動作するようにこれらの行を修正できるかどうか、互換性のある方法で同じことをするか、これらのエラーを修正する必要があるかなど、私は疑問に思っています。

重要なこととして、私はまた、これらの行が何をしているのか興味があります。

もし役に立ちましたら、cmakeを使用して設定した後にmingw32-make installフリーラウトをしようとしています。

おかげ

+0

これらのヘッダーは、そのコンパイラ用のものですか? – tadman

+0

いいえわからない。私はhttps://wiki.haskell.org/ALUTの記事に従っており、すべてを段階的に実行するようにしました。このトピックには何も記載されていません。 –

+0

これらは標準ライブラリヘッダーの一部です。それらを混乱させないでください。あなたのプログラムがコンパイルされず、同じヘッダを使って何百万もの他のプログラムが何百万というものになっても、オッズは非常に良好です。それまたはあなたのコンパイラのインストールはどうにかして壊れてしまったので、修理や再インストールが必要です。まずは[mcve]を作ります。それがエラーを見つけて修正するのに役立たない場合は、MVCEを含めるように質問を編集してください。 – user4581301

答えて

2

ラインそれぞれがintを返す関数を宣言、1ダブル、1台のフロートと長い一つの二重かかります。

__cdeclは通常、呼び出し規約のインジケータですが、#defineにはそのコードに数値定数がないこと以外は何も定義されていないことを確認します。

+0

したがって、行は値(double、float、long double)をとり、intを返します。私はそれがそれより複雑だと思った。ありがとうございました。 –