Bunu msys2 64 bit MİNGW65 kabuğunda çalıştırıyorum.
Koştum
$source/configure --host=x86_64-w64-mingw32 --prefix=$dist && make
ve marka düzgün çalışana kadar her şey. Make sorununu aldıktan ve sorun noktasıyla uğraşmaya çalıştıktan sonra, aşağıda aynı sorun için make çalıştırmaya devam ediyorum.
Sonra klasörde make çalıştırdığımda.
bu kısma gelene kadar gayet iyi çalışıyor.
make[2]: Leaving directory '/c/builds/build/REL_11_8/src/backend/utils'
make -C storage/lmgr lwlocknames.h lwlocknames.c
make[2]: Entering directory '/c/builds/build/REL_11_8/src/backend/storage/lmgr'
'/usr/bin/perl' /c/builds/source/src/backend/storage/lmgr/generate-lwlocknames.pl
/c/builds/source/src/backend/storage/lmgr/lwlocknames.txt
unable to parse lwlocknames.txt at /c/builds/source/src/backend/storage/lmgr/generate-
lwlocknames.pl line 36, <$lwlocknames> line 8.
make[2]: *** [Makefile:33: lwlocknames.h] Error 255
make[2]: Leaving directory '/c/builds/build/REL_11_8/src/backend/storage/lmgr'
make[1]: *** [Makefile:137: storage/lmgr/lwlocknames.h] Error 2
make[1]: Leaving directory '/c/builds/build/REL_11_8/src/backend'
make: *** [src/Makefile.global:372: submake-generated-headers] Error 2
İçinde generate-lwlocknames.pl
belli ki bunu tetikleyen şey, aşağıdaki çizgi vardır. Ama neden tetiklediğini ya da nasıl düzeltileceğini bilmiyorum.
Postgres çalıştıran windows makinesi için bir uzantı için dll dosyalarını alabilmek için bu derlemeyi derlemem gerekiyor.
while (<$lwlocknames>)
{
chomp;
# Skip comments
next if /^#/;
next if /^\s*$/;
die "unable to parse lwlocknames.txt"
unless /^(\w+)\s+(\d+)$/;
(my $lockname, my $lockidx) = ($1, $2);
die "lwlocknames.txt not in order" if $lockidx < $lastlockidx;
die "lwlocknames.txt has duplicates" if $lockidx == $lastlockidx;
while ($lastlockidx < $lockidx - 1)
{
++$lastlockidx;
printf $c "%s \"<unassigned:%d>\"", $continue, $lastlockidx;
$continue = ",\n";
}
printf $c "%s \"%s\"", $continue, $lockname;
$lastlockidx = $lockidx;
$continue = ",\n";
print $h "#define $lockname (&MainLWLockArray[$lockidx].lock)\n";
}