Добавление функций erf () и erfc () в math.h _ основы C. - PullRequest
0 голосов
/ 05 октября 2011

Я работаю с компилятором Borland Turbo C ++ на машине WINDOWS и написал фрагмент кода на C.

Я хочу использовать дополнительную функцию ошибки erfc () для одного из моих вычислений.

Однако, когда я запускаю код, появляется ошибка «Ошибка компоновщика: неопределенный символ _erfc в модуле filename.c»

Проблема здесь заключается в том, что erfc () и erf () предполагаютсябыть включенным в библиотеку math.hТем не менее, они не доступны в моем.

Может кто-нибудь сказать, как я могу включить эти функции в свою программу?

Спасибо

Ответы [ 2 ]

4 голосов
/ 05 октября 2011

Вероятно, вам нужно передать какую-то специальную опцию для ссылки на библиотеку математики.

Также возможно, что Borland Turbo C ++ не поддерживает функцию erfc().

В C стандарт ISO C 1990 года не включал функцию erfc(). Он был добавлен в язык по стандарту 1999 года. (Я не уверен насчет C ++.) Я думаю, что Borland Turbo ++ довольно старый.

Попробуйте написать небольшую программу, которая вызывает sqrt(). Если вы можете заставить это работать, а erfc() все еще не распознано, то Borland не поддерживает это.

В последнем случае, либо получите более новый компилятор (есть несколько бесплатных, и это, вероятно, хорошая идея в любом случае), либо найдите реализацию с открытым исходным кодом erfc().

1 голос
/ 05 октября 2011

Вам необходимо создать ссылку на математическую библиотеку. На Unix-машинах это делается передачей флага компоновщика -lm, что означает «ссылка на библиотеку с именем libm». Наверное, есть что-то подобное, что нужно сделать для Borland, но я не уверен в деталях. Надеюсь, это направит вас в правильном направлении.

...