Autoscan autoconf сгенерированный скрипт конфигурации не может найти функции cmath в коде c ++ - PullRequest
2 голосов
/ 10 января 2012

Я запутался, почему скрипт configure, сгенерированный autoscan и autoconf, говорит мне, что не может найти функции pow и sqrt в коде c ++, который включает заголовочный файл cmath. Я звоню AC_CHECK_FUNCS([pow sqrt]) (который возвращает ответ «нет»). Код компилируется и работает просто отлично, без ошибок.

C ++ код:

#include <cmath>
...
x = sqrt(y);

configure.ac:

AC_CHECK_FUNCS([pow sqrt])

Нет библиотечных проверок, но мне не нужно указывать -lm в командной строке для cmath. Я не уверен, что это задержка. Кажется довольно простым, поэтому я запутался, почему это не работает. К вашему сведению, g ++ 4.1.2, autoconf 2.59, RedHat EL 5.3.

1 Ответ

3 голосов
/ 10 января 2012

Поскольку вы компилируете код на C ++, вам следует переключить autoconf для запуска его тестов с C ++, например, добавить

AC_LANG(C++)

до ваших проверок. Это запустит тесты с C ++, но все же только проверит существование соответствующей функции C. Смотрите предостережения здесь .

...