2016-11-07 3 views
1

私はこれまでにmsysで構築したWindowsプログラムのスイートを持っていて、そのうちの1つはlibxml2です。私は現在、msys2の下にそれらを構築することに切り替えようとしており、後者は問題に当たっています。私Makefileこの含ま更新:msing2の下でmingw32-makeのインクルードとライブラリの場所を指定するにはどうすればよいですか?

CFLAGS += -I/mingw32/include/libxml2 

$(BINDIR)/%.o: %.c 
    @-$(MKDIR) $(BINDIR) 
    $(CC) $(CFLAGS) -c $*.c -o [email protected] 

しかし、私はmake (mingw32-make)を実行すると、以下のようにコンパイルが失敗します。

[csv-gen]: mingw32-make 
gcc -std=c99 -Werror -Wall -D_XOPEN_SOURCE -O -I/mingw32/include/libxml2 -c xmlParse.c -o ../../bin/Win32/csv-gen/xmlParse.o 
xmlParse.c:36:27: fatal error: libxml/parser.h: No such file or directory 
#include "libxml/parser.h" 
         ^
compilation terminated. 
Makefile:66: recipe for target '../../bin/Win32/csv-gen/xmlParse.o' failed 
mingw32-make: *** [../../bin/Win32/csv-gen/xmlParse.o] Error 1 

しかしlibxml/parser.hファイルは-Iオプションで与え/mingw32/include/libxml2パスの下に存在しないこと:

[csv-gen]: ls /mingw32/include/libxml2/libxml/parser.h 
/mingw32/include/libxml2/libxml/parser.h 

そして、奇妙なことは、私が正確に同じgccコマンドをmsysのbashシェルから直接実行すると(上の出力をコピーして貼り付けてください)、エラーなしでコンパイルできます。

そして、-L/mingw32/libによって与えられたパスにlibxml2.aというライブラリが見つからないリンクフェーズとまったく同じ問題があります。また、シェルから直接gcc linkコマンドを実行しても問題ありません。

mingw32-makeで実行するとgccの-I/mingw32/include/libxml2-L/mingw32/libオプションが機能しないのですが、シェルから直接gccを呼び出すときに、まったく同じオプションが正常に機能しますか?

パスを明示的なWindowsパス(d:/msys64/mingw32/...)にしてみて、引用してみましたが、役に立たなくなりました。

答えて

0

答えは明示的なWindowsパスを使用していたことが判明しました。これは前述のように私が試したものですが、再試行したときに以前に間違いがあったに違いありません。パスは、だから、明らかに問題がMINGW32-makeが完全にMinGW64システム、または少なくともない/ MINGW32を提出MSYSを理解して/しないということである

[csv-gen]: pkg-config --cflags libxml-2.0 
-ID:/msys64/mingw32/include/libxml2 

:私は与えPKG-config設定からの出力を使用してこれを見つけましたその中に。

関連する問題