2013-04-29 4 views
-1

зависимостей библиотеки: libxml >= 2.7.6 openssl >= 0.9.8 цифровой подписи поколения требует дополнительных библиотек: libXslt >= 1.1.24 libxmlsec1 >= 1.2.9как связать библиотеки зависимостей с Makefile

Эти библиотеки зависимостей. У меня есть код проекта, но для запуска необходимых библиотек зависимостей makefile.

Я загрузил эти библиотеки и скопировал их в папку usr/include. , но я не знаю точно, как добавить в make-файл эту библиотеку зависимостей ... i m используя ubuntu 11.04.

#GCC compiler 

CC=gcc 
CFLAGS= -D__XMLSEC_FUNCTION__=__FUNCTION__ -DXMLSEC_NO_XSLT=1 -DXMLSEC_NO_XKMS=1 -I/usr/include/libxml2 -DXMLSEC_CRYPTO_DYNAMIC_LOADING=1 -DXMLSEC_CRYPTO=\"openssl\" -DUNIX_SOCKETS -DXML_SECURITY -DDEBUG -I/usr/include/protobuf-c-0.15 -L/usr/include/libxslt-1.1.24 
LDFLAGS= -lcrypto -I/usr/include/libxml2 -lxml2  -I/usr/include/xmlsec1 -lxmlsec1 -lprotobuf-c  
LIBS=-lm 

fileClient:     
    $(CC) $(CFLAGS) $(LDFLAGS) $(LIBS) src/main.c src/file2.c src/file3.pb-c.c -o fileClient 

clean: 
     $(RM) fileClient *.o *~ 


     # 
+1

Не копируйте заголовки вручную. Вместо этого вы должны установить соответствующие пакеты разработчика. Они устанавливают для вас необходимые заголовки. Например, 'sudo apt-get install libxml2-dev'. – jweyrich

ответ

1

Не делайте этого в Makefile, но в некоторых из вашего заголовка с кодом, как

#if LIXML_VERSION < 20800 
#error too old version of libxml need 2.8.0 or newer 
#endif 

и вы можете быть заинтересованы в autotools (autoconf, automake и друзей) и в pkg-config

Кроме того, управление зависимостями лучше всего обрабатывать путем создания пакета .deb. (так что вам нужен пакет Ubuntu, например libxml2-dev)

Смежные вопросы