automake用于创建lib和使用它的程序

时间:2010-08-17 09:40:53

标签: makefile automake

我正在尝试开发一个使用在同一个项目中完成的另一个内部库的程序。

我想将两者联系起来。 lib被存储并在./lib/mylib下成功编译,并创建了一个mylib.a.问题是我需要在INCLUDE搜索中包含./lib/mylib目录,并将程序与库链接。

是否有任何自动定义的变量,或者我必须自己做,如下面的Makefile.am?

SUBDIRS = lib .

# set the include path found by configure
INCLUDES = $(all_includes) -Ilib/mylib

bin_PROGRAMS = myprogram

myprogram_SOURCES = main.c 
myprogram_CPPFLAGS =  $(libmylib_CFLAGS) $(AM_CFLAGS) $(CFLAGS)
nfc_network_config_LDADD =$(LIB_MYLIB)

1 个答案:

答案 0 :(得分:2)

您的Makefile可能看起来像这样。

SUBDIRS = lib .
bin_PROGRAMS = myprogram
myprogram_SOURCES = main.c
myprogram_CPPFLAGS = -Ilib/mylib $(AM_CPPFLAGS) 
myprogram_LDADD = lib/mylib/mylib.a

请注意,*_CPPFLAGS通常不应与*_CFLAGS混合,并且始终使用$(CFLAGS)$(CPPFLAGS)变量(它们是用户变量),因此您不应该不得不提他们。此外INCLUDES是一个过时的变量(您应该使用*_CPPFLAGS代替),如果您使用-Wall选项运行它,automake会发出警告。