我正在尝试开发一个使用在同一个项目中完成的另一个内部库的程序。
我想将两者联系起来。 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)
答案 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会发出警告。