我遇到了automake / autoconf的问题。我将首先向您展示我的源代码树的布局:
src
------拱
---------- AVR
-------------- i2c.c
------- SYS
----------- thread.c
现在我的问题。完全编译arch / avr / i2c.c和sys / thread.c并不难。但我真正想要的是部分地编译我的所有子目录(使用gcc -c),然后将所有对象从一个子目录链接起来(ld -r),并在编译所有子目录时制作这些子目录文件的程序。这是可能的,如果是的话,怎么样?
格尔茨, 米歇尔
答案 0 :(得分:5)
Automake不支持ld -r
,我认为libtool
也不支持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
看起来像
{{1}}