3

c ソース コードの configure スクリプト (autotools) に渡される --prefix と --exec-prefix の値を取得する方法を教えてください。

たとえば、autotools を使用して Linux でパッケージをビルドする場合は、次のようにします。

./configure --prefix=/usr/local/apps --exec-prefix=/usr/local/apps &&
make &&
make install

アプリケーションが使用するすべてのファイルは、その値に応じてインストールされます。

たとえば、ファイルを開くための私のアプリケーションでは、イメージがどこにインストールされているかを知り、それを開くためにその値を知る必要があります。

その値をハード コードすることもできますが、そこにしかアプリケーションをインストールできなかったので、そうしたくありません。

その値をどのように知ることができますか?

アンジュタを使用しています。

よろしくお願いします。

4

1 に答える 1

5

通常は、プリプロセッサの値をconfig.hviaAC_DEFINEで定義するか、 でフラグとして定義しますAM_CPPFLAGS。たとえば、Makefile.am では次のようになります。

AM_CPPFLAGS = -DPREFIX="\"$(prefix)\""

これにより、コードに次のようなものを含めることができますprintf( "prefix = %s\n", PREFIX ) 。ソース コード内の文字列の値は の値を反映しないDESTDIRため、ユーザーが段階的なインストールを行うと機能しない可能性があることに注意してください。

于 2013-02-01T21:25:51.493 に答える