私はこれまでに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/...
)にしてみて、引用してみましたが、役に立たなくなりました。