Сценарий конфигурации, созданный Autoscan autoconf, не может найти функции cmath в коде C++

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

Код С++:

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

настроить.ac:

AC_CHECK_FUNCS([pow sqrt])

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


person Fadecomic    schedule 10.01.2012    source источник


Ответы (1)


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

AC_LANG(C++)

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

person Benjamin Bannier    schedule 10.01.2012
comment
Это сработало. Спасибо. Прошло некоторое время с тех пор, как я автоконфисковывал, и это может быть первый раз, когда я сделал это с программой на C++. - person Fadecomic; 11.01.2012