1

Я пытаюсь собрать замазку для Windows на Ubuntu 14.04. получил источник отсюда:

http://the.earth.li/~sgtatham/putty/latest/putty-0.63.tar.gz

Это то, что я делал, пока не получил ошибку:

[17:45:20][~/putty-0.63]$ perl mkfiles.pl 

[17:46:42][~/putty-0.63]$ cd windows/

[17:46:44][~/putty-0.63/windows]$ make VER="-DSNAPSHOT=$(date '+%Y-%m-%d') -DSVN_REV='$(svnversion)' -DMODIFIED" TOOLPATH=i586-mingw32msvc- -f Makefile.cyg putty.exe
.
.
.

i586-mingw32msvc-windres   --define WIN32=1 --define _WIN32=1 --define WINVER=0x0400 --define SNAPSHOT=2015-02-18 --define SVN_REV='Unversioned directory' --define MODIFIED ../windows/putty.rc -o putty.res.o

i586-mingw32msvc-gcc   -mno-cygwin -Wall -O2 -D_WINDOWS -DDEBUG -DWIN32S_COMPAT -D_NO_OLDNAMES -DNO_MULTIMON -DNO_HTMLHELP -DNO_SECUREZEROMEMORY -I.././ -I../charset/ -I../windows/ -I../unix/ -I../macosx/ -DSECURITY_WIN32 -D_WIN32_IE=0x0500 -DWINVER=0x0500 -D_WIN32_WINDOWS=0x0410 -D_WIN32_WINNT=0x0500 -DSNAPSHOT=2015-02-18 -DSVN_REV='Unversioned directory' -DMODIFIED -c ../version.c

../version.c:63: warning: division by zero

../version.c:63: error: enumerator value for גvorpal_swordג is not an integer constant
make: *** [version.o] Error 1

Что я могу с этим поделать?

1 ответ1

1

Значения SNAPSHOT и SVN_REV используются для составления значения типа sshver :

sshver = "PuTTY-Snapshot-SNAPSHOT:rSVN_REV"

С

SNAPSHOT=2015-02-18
SVN_REV=Unversioned directory

это делает

sshver = "PuTTY-Snapshot-2015-02-18:rUnversioned directory"

Что нарушает утверждение в последней строке version.c о том, что sshver должен содержать не более 40 символов.

/*
 * SSH local version string MUST be under 40 characters. Here's a
 * compile time assertion to verify this.
 */
enum { vorpal_sword = 1 / (sizeof(sshver) <= 40) };

Очевидно, что они не проверяют свою сборку для сценария "Неверсионный каталог".

Не уверен, откуда взялся "неверсионный каталог" (его нет в исходном коде).

Решения:

  • Измените строку "Unversioned directory" (откуда бы она ни исходила) на что-то более короткое.
  • Попробуйте использовать исходный код "для разработки", так как они полностью реорганизовали этот кусок кода начиная с версии 0.63, возможно, исправив проблему.
    См. Https://git.tartarus.org/?p=simon/putty.git;a=commit;h=4d8782e74fed043fdf549718f99494622fe9e79b

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .