В соответствии с this site функция ошибки erf (x) исходит из math.h. Но на самом деле, глядя в math.h, не существует, и GCC не может скомпилировать следующий тестовую программу, в то время как г ++ может:erf (x) и math.h
#include <math.h>
#include <stdio.h>
int main(int argc, char* argv[]) {
double x;
double erfX;
x = 1.0;
erfX = erf(x);
printf("erf(%f) = %f", x, erfX);
}
$ gcc mathHTest.c
/tmp/ccWfNox5.o: In function `main':
mathHTest.c:(.text+0x28): undefined reference to `erf'
collect2: ld returned 1 exit status
$ g++ mathHTest.c
Что г ++ тянуть в этом НКУ не? Если посмотреть в/usr/include, единственное место, где я мог бы найти erf (x), было в tgmath.h, которого я не включаю. Так что g ++ должен захватывать разные заголовки, чем gcc, но какие?
EDIT: Я не связывался в libm с gcc, поэтому ошибка ссылки. Тем не менее, я до сих пор не понимаю, почему erf() не находится в математике. Откуда он?