Как (динамически) связать функции math.h в Windows?

Я работаю над приложением C ++, которое использует JL-сервер LLVM для компиляции кода на лету. В этом JIT-скомпилированном коде я хочу иметь возможность вызывать все math.h функции, но в настоящее время это работает только для некоторых из них, т.е. fabs присутствует но fabsf не является.

Похоже на символ fabs находится в msvsrt.lib библиотека времени выполнения, но не fabsfхотя они оба объявлены в моей системе math.h, Я ссылаюсь на неправильную библиотеку времени выполнения? Или мне нужно получить «расширенную» математическую DLL из другого места и также связать ее с этим?

  • Платформа: Windows 7, Visual Studio Express 2012
  • В свойствах, C/C++ > Code Generation > Runtime library = Многопоточная DLL (/MD)

0

Решение

Похоже, в некоторых случаях math.h определяет fabsf следующим образом (взято из math.h, включенного в MSVC2010 express)

#define fabsf(x)    ((float)fabs((double)(x)))

Вероятно, ваша библиотека времени выполнения реализована таким образом, что означает, что fabsf вообще не существует, а «нормальный» fabsf заменяется препроцессором C вызовом _fabs ().

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]