2016-11-22 9 views
1

При попытке компиляции GLFW с помощью Visual Studio 2010 я получил ошибку, что «LNK2019 ошибка: неразрешенный внешний символ _fmax ссылка в Error 3 error LNK2019: unresolved external symbol _fmax referenced in function _star F:\Dev\PROGS\GLFW\build\tests\cursor.obj cursor Но, как я слышал, Visual Studio не поддерживает c99 .Затем, что Обходной путь к этому вопросу?Fmax и Fmin альтернатива в c89

ответ

2

Как вы сказали, эти функции были добавлены в C99 и C++ 11. Компилятор Microsoft C не поддерживает C99, но более поздние версии компилятора C++ do поддерживают C++ 11. в комплекте с Visual Studio 2013 будут иметь эти функции. Я не уверен, что они могут использоваться, когда вы компилируете код C или нет.

Если вы застряли в старой версии компилятора, например VS 2010, тривиально реализовать эти функции самостоятельно. Поместите их в заголовок совместимости с MSVC:

#ifdef _MSC_VER 
    #define INLINE __inline 

    INLINE double fmax(double left, double right) 
    { return (left > right) ? left : right; } 

    INLINE double fmin(double left, double right) 
    { return (left < right) ? left : right; } 
#endif