Есть ли решение для этой ошибки: ожидаемый идентификатор или '(' перед числовой константой? - PullRequest
0 голосов
/ 28 апреля 2019

Я загружаю исходный код zip отсюда: http://gnuwin32.sourceforge.net/packages/zip.htm

И я компилирую его на windows10 с Mingw-w64.

Я использую следующую команду для компиляции этого источника:

# mingw32-make -f win32/makefile.gcc zip.exe
gcc -c   -O3 -Wall -mms-bitfields  -fno-exceptions -fomit-frame-pointer -DWIN32 -DZIP64_SUPPORT -DFORCE_WIN32_OVER_UNIX -DLARGE_FILE_SUPPORT -DUNICODE_SUPPORT -DUSE_EF_UT_TIME -DNTSD_EAS -DNO_STREAMING_STORE -ID:/Progra~1/GnuWin32/include -I. -ozip.o zip.c

И я получаю следующую ошибку:

In file included from zip.c:16:
zip.h:265:16: error: expected identifier or '(' before numeric constant
 #define CR     13        /* '\r' on ASCII machines; must be 13 due to EBCDIC */
                ^~
mingw32-make: *** [win32/makefile.gcc:113: zip.o] Error 1

Я пытаюсь прокомментировать эту строку, которая определяет CR, и это работает, но компилятор выдает мне еще одну ошибку о CR, которая не объявлена.

zipup.c:1220:53: error: 'CR' undeclared (first use in this function)
             if ((*buf++ = *b++) == '\n') *(buf-1) = CR, *buf++ = LF, len++;

И я пытаюсь другими способами исправить это, изменив код, но я не знаю причину ошибки. И я не знаю, как это исправить.

Я должен заменить определение следующим образом: #define CR 13

И переместить строку определения в другое место в файле.

Но компилятор также выдает мне ту же ошибку: (Я перемещаю определение из строки 265 в строку 79)

In file included from zip.c:16:
zip.h:79:16: error: expected identifier or '(' before numeric constant
 #define CR     13
                ^~
mingw32-make: *** [win32/makefile.gcc:113: zip.o] Error 1

Я думаю, что код для определения правильный, но я не знаю, почему я получаю ошибку и как ее исправить.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...