0

こんにちは私はClibtoolライブラリを開発しています。依存関係libxml2の追加に問題があります。私はGNUautotoolsを使用することにしました、バット私は非常に初心者です。

configure.acには次のものがあります。

# Checks for libraries.
AC_SEARCH_LIBS([xmlCleanupParser],[xml xml2])
AC_SEARCH_LIBS([xmlSAXVersion],[xml xml2])
AC_SEARCH_LIBS([xmlSAXUserParseFile],[xml xml2])

MakeFile.acの場合:

nobase_include_HEADERS =  \
    foo.h \
    bar.h \
    foo/foo.h \
    foo/bar.h 

lib_LTLIBRARIES = libfoo.la
libfoo_la_SOURCES = \
    foo.c \
    bar.c \
        sax2.c \
    foo/foo.c \
    foo/bar.c 


check_PROGRAMS = test
test_SOURCES = test.c
test_LDADD = libfoo.la

configureスクリプトは正しく出力します:

checking for library containing xmlCleanupParser... -lxml2

生成されたMakefileには次のものがあります。

LIBS = -lxml2 
...
libfoo.la: $(libfoo_la_OBJECTS) $(libfoo_la_DEPENDENCIES) 
$(LINK) -rpath $(libdir) $(libfoo_la_OBJECTS) $(libfoo_la_LIBADD) $(LIBS)

Makeを起動すると:

libtool: compile:  gcc -DHAVE_CONFIG_H -I. -I.. -g -O2 -MT bar.lo -MD -MP -MF .deps/bar.Tpo -c bar.c -o bar.o >/dev/null 2>&1
mv -f .deps/bar.Tpo .deps/bar.Plo
/bin/sh ../libtool --tag=CC   --mode=compile gcc -DHAVE_CONFIG_H -I. -I..     -g -O2 -MT sax2.lo -MD -MP -MF .deps/sax2.Tpo -c -o sax2.lo sax2.c
libtool: compile:  gcc -DHAVE_CONFIG_H -I. -I.. -g -O2 -MT sax2.lo -MD -MP -MF .deps/sax2.Tpo -c sax2.c  -fno-common -DPIC -o .libs/sax2.o
sax2.c:21:29: error: libxml/encoding.h: No such file or directory
sax2.c:22:31: error: libxml/xmlversion.h: No such file or directory
sax2.c:23:27: error: libxml/parser.h: No such file or directory
sax2.c:24:30: error: libxml/xmlmemory.h: No such file or directory
sax2.c:25:25: error: libxml/SAX2.h: No such file or directory
sax2.c:26:25: error: libxml/tree.h: No such file or directory
sax2.c:27:30: error: libxml/xmlstring.h: No such file or directory

makeコマンドはlibxml2をリンクしません、誰かが私を助けてくれますか?

4

2 に答える 2

2

あなたの問題はリンクではなく、コンパイルにあります。「コンパイル」と表示され、ヘッダー ファイルが見つからないと文句を言うことに注意してください。これらのヘッダーはシステムの の下にあるはずなので、コンパイル コマンドに/usr/include/追加する必要があります (現在、 と の 2 つの -I オプションがあります)。-I/usr/include...

于 2011-04-19T13:30:49.967 に答える
1

で時間を無駄にする代わりに、AC_SEARCH_LIBS単純に を使用できますPKG_CHECK_MODULES([libxml], [libxml-2.0])

于 2011-05-06T21:03:50.343 に答える