Ошибка при компиляции PDCurses36 с TDM GCC 5.1.0 - PullRequest
0 голосов
/ 03 июля 2018

Недавно я пытался создать исходный код для pdcurses36, несмотря на то, что следовал инструкциям, приведенным в README.md. По любой причине у меня всегда остается одна и та же ошибка, так как «рецепт для цели« pdcdisp.o »не удался». Это сообщение об ошибке:

C:\Program Files (x86)\CodeBlocks\pdcurs36\wincon>mingw32-make -f makefile
gcc -c -O2 -Wall -I.. ../wincon/pdcdisp.c
../wincon/pdcdisp.c: In function '_new_packet':
../wincon/pdcdisp.c:211:28: error: 'COMMON_LVB_UNDERSCORE' undeclared (first use in this function)
             mapped_attr |= COMMON_LVB_UNDERSCORE;
                            ^
../wincon/pdcdisp.c:211:28: note: each undeclared identifier is reported only once for each function it appears in
../wincon/pdcdisp.c:213:28: error: 'COMMON_LVB_GRID_LVERTICAL' undeclared (first use in this function)
             mapped_attr |= COMMON_LVB_GRID_LVERTICAL;
                            ^
../wincon/pdcdisp.c:215:28: error: 'COMMON_LVB_GRID_RVERTICAL' undeclared (first use in this function)
             mapped_attr |= COMMON_LVB_GRID_RVERTICAL;
                            ^
makefile:94: recipe for target 'pdcdisp.o' failed
mingw32-make: *** [pdcdisp.o] Error 1

Это команды, которые я дал в командной строке:

set PDCURSES_SRCDIR = C:\...\pdcurs36

path = C:\...\CodeBlocks\MinGW\bin

cd C:\...\pdcurs36\wincon

mingw32-make -f Makefile

В настоящее время я использую TDM GCC 5.1.0 (что было предоставлено в виде двоичной сборки кодовых блоков 17.12) и pdcurs36.zip из репозитория, предоставленного с официального сайта . Моя ОС - Windows 10.

Любая помощь будет по достоинству оценена.

EDIT Я имел в виду версию 17.12 кодовых блоков

1 Ответ

0 голосов
/ 03 июля 2018

Мне не хватает представителя для комментария , но вас может заинтересовать этот PDCurses, передающий в pdcdisp.c.

предупреждение о старом компиляторе; заменил COMMON_LVB_ * номерами на успокоить некоторые старые компиляторы. После Симона Собиша.

Похоже, что GCC 5.1.0 просто не определяет эти макросы, поэтому они жестко закодировали значения:

0x8000; /* COMMON_LVB_UNDERSCORE */
0x0800; /* COMMON_LVB_GRID_LVERTICAL */
0x1000; /* COMMON_LVB_GRID_RVERTICAL */
...