1

私はautotoolsを初めて使用し、autotoolsを使用してライブラリと実行可能ファイルをパッケージ化する方法の例を探していました。実行可能ファイルはライブラリに依存するため、最初にライブラリをビルドする必要があります。

これまでのところ、ライブラリを独自にパッケージ化しており、実行可能ファイルをコンパイルして、インストール後にライブラリにリンクすることができました。そのプロセスのMakefile.amは次のとおりです。

lib_LTLIBRARIES = libfoo.1.0.0.la
libfoo_1_0_0_la_SOURCES = libfoo.c
library_includedir=$(includedir)
library_include_HEADERS = libfoo.h

次に、configure.acファイルLT_INITで、適切な場所に行を追加しました。すべてがうまく構築され、機能します。コンパイル可能なライブラリを使用するファイルfoo.cがありますがgcc foo.c -o foo -lfoo、autotoolsパッケージを拡張してfoo実行可能ファイルを含めたいので、これを行う方法がわかりません。Makefile.amを次のように変更しました。

bin_PROGRAMS=foo
foo_SOURCES=foo.c
foo_DEPENDENCIES=libfoo.1.0.0.la
lib_LTLIBRARIES = libfoo.1.0.0.la
libfoo_1_0_0_la_SOURCES = libfoo.c
library_includedir=$(includedir)
library_include_HEADERS = libfoo.h

私のconfigure.acファイルは変更されていません。私が作成するまではすべて正常に動作します。この時点では、foo.cが最初にコンパイルされ、libfooの関数が使用できないため、明らかに多くのエラーがスローされるようです。私はこのような例を探しましたが、今のところ運がありませんでした。どんな助けでもいただければ幸いです。

4

2 に答える 2

3

これはそれを行うための適切な方法です。

lib_LTLIBRARIES = libmoovcaps.la
libmovcaps_la_SOURCES = libmoovcaps.c
include_HEADERS = libmoovcaps.h
bin_PROGRAMS = moovcaps
moovcaps_SOURCES = moovcaps.c
moovcaps_LDADD = libmoovcaps.la

PS:libmoovcaps.laに数字があるのはなぜですか?-version-infoを介してフラグを渡すことができますlibmoovcaps_LDFLAGS

于 2013-01-08T00:12:49.300 に答える
0

私はそれを理解しました、私はこれを私の中に入れましたMakefile.am

lib_LTLIBRARIES = libfoo.1.0.0.la
libfoo_la_SOURCES = libfoo.c
library_includedir=$(includedir)
library_include_HEADERS = libfoo.h
bin_PROGRAMS=foo
foo_SOURCES=foo.c
foo_DEPENDENCIES=libfoo.1.0.0.la
foo_LDADD= libfoo.o

これは今はうまくいくようです:)

于 2013-01-03T16:26:56.807 に答える