質問

私のプロジェクトモジュールに編成されていsubdirsのためのヘ.

私のプロジェクトdir階層:

$ ls -R
.:         configure.in Makefile.am  Makefile.cvs  src
./src:     log          Makefile.am  main.cpp
./src/log: log.cpp      Makefile.am

ルを作成します。:

AC_INIT(configure.in)
AM_CONFIG_HEADER(config.h)
AM_INIT_AUTOMAKE(myapp, 0.1)
AC_LANG_CPLUSPLUS
AC_PROG_CXX
AM_PROG_LIBTOOL
AC_OUTPUT(Makefile src/Makefile src/log/Makefile)

Makefile.am:

AUTOMAKE_OPTIONS = foreign
SUBDIRS = src

Makefile.cvs:

default:
    aclocal
    libtoolize --force --copy
    autoheader
    automake --add-missing --copy
    autoconf

src/Makefile.am

bin_PROGRAMS = myapp
myapp_SOURCES = main.cpp
SUBDIRS = log
myapp_LDADD = $(top_builddir)/src/log/liblog.la

src/log/Makefile.am:

INCLUDES = $(all_includes)
METASOURCES = AUTO
noinst_LTLIBRARIES = liblog.la
liblog_la_SOURCES = log.cpp

src/main.cpp: 含む int main(){}, src/log/log.cpp 含む void f(){}.

を呼び出す make 生(編集のための簡潔):

libtool --mode=compile g++     -MT log.lo -MD -MP -MF .deps/log.Tpo -c -o log.lo log.cpp
libtool: compile:  g++ -MT log.lo -MD -MP -MF .deps/log.Tpo -c log.cpp  -fPIC -DPIC -o .libs/log.o
libtool: compile:  g++ -MT log.lo -MD -MP -MF .deps/log.Tpo -c log.cpp -o log.o >/dev/null 2>&1
mv -f .deps/log.Tpo .deps/log.Plo
libtool --mode=link g++    -o liblog.la  log.lo  
libtool: link: ar cru .libs/liblog.a .libs/log.o 
libtool: link: ranlib .libs/liblog.a
libtool: link: ( cd ".libs" && rm -f "liblog.la" && ln -s "../liblog.la" "liblog.la" )
g++ -MT main.o -MD -MP -MF .deps/main.Tpo -c -o main.o main.cpp
mv -f .deps/main.Tpo .deps/main.Po
libtool --mode=link g++    -o myapp main.o ../src/log/liblog.la 
libtool: link: g++ -o myapp main.o  ../src/log/.libs/liblog.a

問題は第三線 log.cpp はめ!

という問いに なぜないでくださ一度取り半分の時間がかかる?

注意: いるかは知らないしかったので、良かった--autotoolsはブラックマジックは私に、私たちは利用します。のドキュメントは理解不能です。

役に立ちましたか?

解決

フォーバを作成し、二種類の図書館:静的及び共用となります。(通称libfoo.a libfoo.で)

静的およびシャードとは異なる編集フラグがあります。動的ライブラリ--共有オブジェクト 使用位置を独立したコードは、以下のgccグ:

-fPIC -DPIC

静的ではない。できる力を構築レーターによるspecifing

./configure --disable-shared

または

./configure --disable-static

格付の理由

通常時に図書館提供のためのユーザに提供する場合の二つの構築--静的な開発を可能にするを静電気の発動のための使用によるも プログラムを使用するこの図書館があります。なので、通常インストールすると図書館システム ごみ置の共有オブジェクトです。(通称libfoo_XYZ.deb)

き追加開発のバージョン(通称libfoo-dev_XYZ.バ)への追加ヘッダおよび静的 構築の図書館可能にするユーザーはstaicを築いwhant.

この共通の練習船の図書館にUNIX.このようにバのはこのために きます。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top