ile çapraz derleme Bu project'u MinGW ile çapraz derlemeye çalışıyorum.Gnulib tabanlı bir projeyi MinGW
Proje, yapı sistemi olarak autotools'u kullanır ve libcurl, CUnit, Jansson ve bazı gnulib modüllerine bağlıdır.
$ gnulib-tool --update
$ autoreconf -fi
$ CURL_CFLAGS="-I/home/user/mingw64/usr/local/include" \
CURL_LIBS="-L/home/user/mingw64/usr/local/lib -lcurl" \
JANSSON_CFLAGS="-I/home/user/mingw64/usr/local/include" \
JANSSON_LIBS="-L/home/user/mingw64/usr/local/lib -ljansson" \
CUNIT_CFLAGS="-I/home/user/mingw64/usr/local/include" \
CUNIT_LIBS="-L/home/user/mingw64/usr/local/lib -lcunit" \
./configure --host=x86_64-w64-mingw32
$ make
Ve bu hatayı alıyorum:
Bütün bağımlılıklar /home/user/mingw64
altında x86_64-w64-mingw32
için derlenmiş ve kurduktan koşuyorum
make all-recursive
make[1]: Entering directory '/home/user/projects/shill'
Making all in po
make[2]: Entering directory '/home/user/projects/shill/po'
make[2]: Nothing to be done for 'all'.
make[2]: Leaving directory '/home/user/projects/shill/po'
Making all in lib
make[2]: Entering directory '/home/user/projects/shill/lib'
make[2]: *** No rule to make target 'lib/errno.h', needed by 'all'. Stop.
make[2]: Leaving directory '/home/user/projects/shill/lib'
Makefile:1897: recipe for target 'all-recursive' failed
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory '/home/user/projects/shill'
Makefile:1429: recipe for target 'all' failed
make: *** [all] Error 2
errno.h
gnulib modüllerinin parçasıdır .
# Find gnulib headers.
ACLOCAL_AMFLAGS = -I m4
AM_CPPFLAGS = \
-DLOCALEDIR='"$(localedir)"' \
-Ilib -I$(top_srcdir)/lib \
-Isrc -I$(top_srcdir)/src \
Ama çözüm bilemiyorum: Ben sorunun Makefile.am bu bölüm geldiğini düşünüyorum. Tam olarak gnulib manual'da açıklanan talimatları takip ettim.
Bazı Makefile'de "all: ... lib/errno.h ... gibi bir satır var'(veya değişken ikameden sonra buna genişleyen bir çizgi) probleminizin en önemli sebebidir. –
@RossRidge Tüm 'Makefile'ler autotools tarafından otomatik olarak oluşturulur, böylece hatayı bulabilir ve düzeltebilirsem bile işe yaramaz. Makefile rejenere edilecek ve düzeltmeyi geçersiz kılacak. –
Bu yüzden kaynağı değiştirerek düzeltin. –