0

私はFreeBSDを使用していて、iconvパッケージフォームのportcollectionをインストールしました。

AC_CHECK_HEADER([iconv.h], ,[AC_MSG_ERROR([can not find iconv.h])]) AC_CHECK_LIB([iconv], [iconv_open], ,[AC_MSG_ERROR([can not find iconv_open])])

configure.acで。しかし、。/ configureを実行すると、次のメッセージが表示されました。

checking iconv.h usability... no

checking iconv.h presence... no

checking for iconv.h... no

configure: error: can not find iconv.h

とのディレクトリにiconv.h、、があると確信しています。ヘッダーファイルとライブラリを確認するための正しいステートメントをどのように記述すればよいですか。よろしくお願いします。libiconv.lalibiconv.so/usr/local/include/usr/local/lib

4

3 に答える 3

1

configure.acいかなる方法でも変更しないでください。ユーザーは、ライブラリを探す場所をツールチェーンに指示する責任があります。ユーザー(configureを実行するときのユーザー)にとって、簡単なことは、適切なフラグが設定されるようにconfig.siteをセットアップすることです。たとえば、.bashrc:export CONFIG_SITE=$HOME/CONFIG_SITEで、次に、で$HOME/CONFIG_SITE、次のようになります。

test "$prefix" = NONE && pfx=/usr/local || pfx=$prefix
: ${CPPFLAGS=-I$pfx/include}
: ${LDFLAGS=-L$pfx/lib}

これにより、コンパイラとリンカに適切なフラグが挿入され、常にいくつかの一般的な場所が検索されます。

于 2012-07-27T19:58:07.380 に答える
0

GNUgettextの一部であるAM_ICONVautomakeマクロ(iconv.m4)が常にあります。gettext.m4を使用する必要はありません。

于 2012-07-27T18:05:58.123 に答える
0

ほとんどの場合、パスはコンパイラによってデフォルトで検索されません/usr/local/include。configure.acスクリプトの変数と変数を/usr/local/lib変更することで実行できます。CFLAGSLDFLAGS

CFLAGS="$CFLAGS -I/usr/local/include"
LDFLAGS="$LDFLAGS -L/usr/local/lib"

ヘッダーとライブラリを確認する前に、これらの2行を追加してください。

CPPFLAGSおそらく、インクルードパスを追加するために、(プリプロセッサ用に)およびCXXFLAGS(C ++コードをビルドしている場合)同様に設定する必要があるかもしれません。

編集:これらのフラグを設定するconfigure.acことは、William Pursellが指摘しているように、実際には推奨されていません。configure代わりに、生成されたスクリプトを呼び出すときに、これらを環境変数として設定します。

$ CPPFLAGS=-I/usr/local/include LDFLAGS=-L/usr/local/lib ./configure
于 2012-07-27T08:08:36.223 に答える