2016-10-20 4 views
0

VS 2015 Professionalがインストールされました。私はLawrence Livermoreから最新のHYPREをインストールしました。私は、ビルドエラー(dnrm2.c)CMakeのを使用してそれを設定し、構築するために進行し、私はBLASを得て開始しました:HYPREはVS 2015でビルドエラーを発生します

2>   dnrm2.c 
2>  1> 
C:\Program Files (x86)\Windows Kits\10\Include\10.0.10240.0\ucrt\math.h(454): error C2059: syntax error: '(' 

dnrm2.cでエラーをトリガするコード行は次のとおりです。

指して
#include "math.h" 

ファイル:

c:\Program Files (x86)\Windows Kits\10\Include\10.0.10240.0\ucrt\math.h 

が、私はこのエラーを見上げるとに含める変更するなどthisなどいくつかの提案を見つけました:

#include <cmath> 

とでHYPREプロジェクト設定を編集するには:私がしたが、math.hに明らかに同じヘッダ経路も同様にcmathから含まれているので、私はまだ、同じエラーが表示さCompile As C++ (/TP)

Configuration > C/C++ > Advanced > Compile As

#else /* _STD_USING */ 
#include <math.h> 
#endif /* _STD_USING */ 

私はVS2015を幸運なことなく(同じエラー)再インストールしようとしました。ここで何が起こっているのか、またこれを解決する方法についてのアイデアを感謝してください。私はVS 2015でmath.hを含む最小限の例を試してみるといいでしょう。

EDIT 私のミニマリストの例:

#include "math.h" 

int main() { 
    double d1 = sqrt(4.0); 
    float d2 = abs(4.0); 
    return 0; 
} 

はOK構築されているようです。私はプロジェクトをCと同じ方法でコンパイルしようとしました(またはC++は関係ありません)。これは本当に私を助けません。

+0

私は、VS2015でmath.hを含むミニマリストの例を試してみるといいでしょう。もしそれが助けてくれれば:これは間違いなく助けになるでしょう。 –

+0

@MichaelWalz:ミニマリストの例を含むように投稿を編集しました。それはOKです。だから私のVS 2015のインストールはOKで、問題はHYPRE ..ですが、何ができますか? –

答えて

0

OK、ここの問題は、HYPREソースのように見えます。

//#undef abs 
//#define abs(x) ((x) >= 0 ? (x) : -(x)) 
//#endif 

(これは既に標準で定義されているので)、私はそれをコメントアウトすると、それはエラーを構築し、過去を取得します。彼らはmath.h含める前に含まれているファイルf2c.hでこれを持っています。もちろん私は他のビルドエラーに遭遇します。私はそれらを別々に取り組もうとしています。

編集:それは(HYPRE)がabsという独自の定義に実際に頼っているため、単純ではありません。だから私は上記を元に戻して、ある程度の包含の順序を変えて、undefが実際に意味をなさないようにしました。いずれにせよ、これはHYPREソースコードの問題です。

0

VS2015でHYPREのコンパイルに成功した場合、VS2015プログラムを私に送ってください。 私の専攻は、地球物理学のモデリングと逆転です。 私のメールアドレスは[email protected] ありがとうございます!

+0

私の解決策は以下の通りです。それはあなたがそれを把握するのに役立たない場合は教えてください。私は骨の折れる変更を加えなければなりませんでした。 –

0

私はちょうど

c:\Program Files (x86)\Windows Kits\10\Include\10.0.10240.0\ucrt\math.h 

_Check_return_ int  __cdecl abs(_In_ int _X); 

をコメントしてきましたし、その後HYPREが正常にコンパイルされました!

次に、「abs」のコメントを外しました。

関連する問題