Mic*_*ens 1 automake autoconf gcc gnu ld
我的automake/autoconf有问题.我将首先向您展示我的源代码树的布局:
src
------ arch
---------- avr
-------------- i2c.c
------- sys
------ ----- thread.c
现在我的问题.完全编译arch/avr/i2c.c和sys/thread.c并不难.但我真正想要的是部分编译我的所有子目录(使用gcc -c),然后将所有对象从一个子目录链接起来(ld -r),并在编译所有子目录时制作这些子目录文件的程序.这是可能的,如果是的话,怎么样?
格雷茨,米歇尔
Automake不支持ld -r,我也不认为libtool可以做到.通常的设置是为每个目录构建一个静态存档,并将主程序与这些静态存档链接.
你可以进去 arch/avr/Makefile.am
noinst_LIBRARIES = libavr.a
libavr_a_SOURCES = i2c.c ...
Run Code Online (Sandbox Code Playgroud)
类似的东西sys/,src/Makefile.am看起来像
SUBDIRS = arch sys .
bin_PROGRAMS = foo
foo_SOURCES = main
foo_LDADD = arch/avr/libavr.a sys/libsys.a
Run Code Online (Sandbox Code Playgroud)