Указание путей к библиотекам в Makefile

Я использую autoconf и automake для проекта C ++, и я ожидаю, что g ++ будет достаточно умен, чтобы посмотреть на /usr/include/<library-name> когда мой исходный код уже есть

#include <libxml/xpath.h>
#include <libxml/xpathInternals.h>
#include <libxml/parser.h>
#include <libxml/tree.h>
#include <curl/curl.h>
#include <openssl/md5.h>

Когда я просто бегу ./configure && make Я получаю эту ошибку

g++ -DHAVE_CONFIG_H -I. -I..   -Wall -O2   -g -O2 -MT azurefs.o -MD -MP -MF .deps/azurefs.Tpo -c -o azurefs.o azurefs.cpp
azurefs.cpp:33:26: fatal error: libxml/xpath.h: No such file or directory
compilation terminated

Я должен включить путь к библиотеке, используя CCXXFLAGS сюда

$ CXXFLAGS=-I/usr/include/libxml2 ./configure && make

Есть ли лучший способ написать мой код, файлы Makefile или autoconf, чтобы g ++ правильно искал библиотеки в /usr/include/<library-name> ?

1

Решение

В моем Makefile.am у меня есть следующая строка для добавления аргументов g ++:

AM_CPPFLAGS = -I$(top_srcdir)/src/include/ --std=c++0x

Я думаю, что вам нужно что-то подобное:

AM_CPPFLAGS = `pkg-config --cflags libxml-2.0`

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

2

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]