2012-01-10 1 views
2

autoscanとautoconfによって生成されたconfigureスクリプトが、を含むC++コードで関数powsqrtを見つけることができないのはなぜですか?ヘッダーファイル。私はAC_CHECK_FUNCS([pow sqrt])(これは "いいえ"答えを返します)と呼んでいます。コードはコンパイルされ、正常に実行されます。エラーはありません。Autoscan autoconf生成されたconfigureスクリプトがC++コードのcmath関数を見つけることができません

C++コード:

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

configure.ac:

AC_CHECK_FUNCS([pow sqrt]) 

は何のライブラリのチェックはありませんが、私はcmathためのコマンドラインで-lmをリンクする必要はありません。これが退屈なのかどうかは分かりません。かなりシンプルなので、なぜ機能していないのか混乱しています。 FYI、g ++ 4.1.2、autoconf 2.59、RedHat EL 5.3。

答えて

3

C++コードをコンパイルするので、autoconfを切り替えてC++でテストを実行する必要があります。あなたの確認の前に、

AC_LANG(C++) 

を追加してください。これはC++でテストを実行しますが、対応するC関数の存在のみをチェックします。 caveats hereを参照してください。

+0

これはうまくいきました。ありがとう。私が自動作成して以来、しばらく経っています。これはC++プログラムで初めて行ったかもしれません。 – Fadecomic

関連する問題