1

automake/autoconf に問題があります。最初にソース ツリーのレイアウトを示します。

src
------arch
----------avr
--------------i2c.c
-------sys
------ -----thread.c

今私の問題。arch/avr/i2c.c と sys/thread.c を完全にコンパイルするのはそれほど難しくありません。しかし、私が実際に望んでいるのは、すべてのサブディレクトリを部分的にコンパイルし (gcc -c を使用)、1 つのサブディレクトリからすべてのオブジェクトをリンクし (ld -r)、すべてのサブディレクトリがコンパイルされたときにそれらのサブディレクトリ オブジェクト ファイルのプログラムを作成することです。これは可能ですか?

グリーツ、ミシェル

4

1 に答える 1

5

Automake は をサポートしていませんしld -r、それもできないと思いlibtoolます。通常のセットアップでは、ディレクトリごとに 1 つの静的アーカイブを作成し、メイン プログラムをこれらの静的アーカイブにリンクします。

あなたが持っていることができますarch/avr/Makefile.am

noinst_LIBRARIES = libavr.a
libavr_a_SOURCES = i2c.c ...

で似たようなものでsys/、次のようにsrc/Makefile.amなります

SUBDIRS = arch sys .
bin_PROGRAMS = foo
foo_SOURCES = main
foo_LDADD = arch/avr/libavr.a sys/libsys.a
于 2012-09-20T05:38:51.837 に答える