1

私は C++ プロジェクトに autoconf と automake を使用しています/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

g++ がライブラリを正しく検索できるように、コード、Makefile、または autoconf ファイルを記述するより良い方法はあります/usr/include/<library-name> か?

4

1 に答える 1

2

私の Makefile.am には、g++ 引数を追加する次の行があります。

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

次のようなものが必要だと思います:

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

そのため、インクルードが別のシステムのどこにあるかを気にする必要もありません。

于 2012-12-17T19:12:00.450 に答える