möglicher Fehler beim VC98 (math.h)



  • Hi Leute,

    ich habe ein Problmchen mit dem VC98.
    Die Situation ist folgende:
    VC98 SP5 PP5 WinXP SP2
    Ich habe ein belibiges C++ Programm und sobald ich die acml.h (AMD Core Math Lib) einbinde bekomme ich einen Fehler vom Compiler:

    ...vc98\include\math.h(514) : error C2894: Vorlagen koennen nicht mit 'C'-Bindung deklariert werden
    

    Wenn ich mir die math.h nun an dieser Stelle ansehe, kann ich da aber nichts finden.

    ...
    long double  __cdecl modfl(long double, long double  *);
    long double  __cdecl powl(long double, long double);
    long double  __cdecl sinl(long double);
    long double  __cdecl sinhl(long double);
    long double  __cdecl sqrtl(long double);
    long double  __cdecl tanl(long double);
    long double  __cdecl tanhl(long double);
    long double  __cdecl _y0l(long double);
    long double  __cdecl _y1l(long double);
    long double  __cdecl _ynl(int, long double);
    
    #endif  /* _M_M68K */
    
    #ifdef  __cplusplus     //schließt das extern "C"
    }
    
    #if     !defined(_M_M68K)
    
    template<class _Ty> inline    //Fehler wird hier angezeigt
            _Ty _Pow_int(_Ty _X, int _Y)
            {unsigned int _N;
            if (_Y >= 0)
                    _N = _Y;
            else
                    _N = -_Y;
            for (_Ty _Z = _Ty(1); ; _X *= _X)
                    {if ((_N & 1) != 0)
                            _Z *= _X;
                    if ((_N >>= 1) == 0)
                            return (_Y < 0 ? _Ty(1) / _Z : _Z); }}
    
    #ifndef _MSC_EXTENSIONS
    
    inline long __cdecl abs(long _X)
            {return (labs(_X)); }
    inline double __cdecl abs(double _X)
            {return (fabs(_X)); }
    inline double __cdecl pow(double _X, int _Y)
    ...
    

    Meine Frage nun, was habe ich da nicht verstanden 😞

    DANKE



  • Kannst du zufällig zurückverfolgen, auf welchem Weg die ACML die math.h einbinden will? Möglicherweise wird dort ein "extern "C"" Block um das gesamte Include gelegt.



  • Volltreffer


Anmelden zum Antworten