1

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

我想链接两者。该库存储在 ./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)
4

1 回答 1

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)and$(CPPFLAGS)变量(它们是用户变量),因此您不必提及它们。也是INCLUDES一个过时的变量(您应该改用),如果您使用该选项*_CPPFLAGS运行它,automake 会发出警告。-Wall

于 2010-08-18T05:25:59.727 回答