automake для создания библиотеки и программы с ее использованием - PullRequest
1 голос
/ 17 августа 2010

Я пытаюсь разработать программу, которая использует другую внутреннюю библиотеку, выполненную в том же проекте.

Я хочу связать оба.Библиотека хранится и успешно компилируется в ./lib/mylib, и создается mylib.a.Проблема в том, что мне нужно включить каталог ./lib/mylib в поиск INCLUDE, а также связать программу с библиотекой.

Есть ли какие-либо автоматически определенные переменные или я должен сделать это по своему усмотрениюв 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 Ответ

2 голосов
/ 18 августа 2010

Ваш 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), и automake предупредит об этом, если вы запустите ее с опцией -Wall.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...