Ошибки при попытке скомпилировать checkinstall из исходного кода на Cygwin

591
Hashim

Я запускаю Cygwin поверх Windows 7. У меня проблемы с установкой checkinstallутилиты из исходных кодов, и виновник, по-видимому,gcc .

Когда я бегу /.configure, я получаю ошибку:

-bash: ./configure: No such file or directory 

Итак, я продолжаю makeи получаю вывод, который дает сбой с большим количеством ошибок, предположительно вызванных gcc. Выход можно увидеть во всей его полноте здесь, но ниже первого и последние несколько строк из него.

$ make for file in locale/checkinstall-*.po ; do \ case $ in \ locale/checkinstall-template.po) ;; \ *) \ out=`echo $file | sed -s 's/po/mo/'` ; \ msgfmt -o $ $ ; \ if [ $? != 0 ] ; then \ exit 1 ; \ fi ; \ ;; \ esac ; \ done make -C installwatch make[1]: Entering directory '/cygdrive/b/Users/Me/Desktop/checkinstall-1.6.2/installwatch' gcc -Wall -c -D_GNU_SOURCE -DPIC -fPIC -D_REENTRANT -DVERSION=\"0.7.0beta7\" installwatch.c In file included from /usr/local/include/sys/param.h:33:0, from installwatch.c:31: /usr/local/include/sys/types.h:10:2: error: #error Only Win32 target is supported! #error Only Win32 target is supported! ^~~~~ In file included from /usr/local/include/sys/param.h:33:0, from installwatch.c:31: /usr/local/include/sys/types.h:90:3: error: unknown type name ‘time_t’ time_t tv_sec; /* Seconds */ ^~~~~~ In file included from installwatch.c:33:0: /usr/local/include/sys/stat.h:10:2: error: #error Only Win32 target is supported! #error Only Win32 target is supported! ^~~~~ In file included from /usr/local/include/sys/stat.h:14:0, from installwatch.c:33: /usr/local/include/io.h:199:28: error: expected ‘,’ or ‘;’ before ‘_findfirst32’ _CRTIMP intptr_t __cdecl _findfirst32(const char *_Filename,struct _finddata32_t *_FindData); ^~~~~~~~~~~~    ...    installwatch.c: In function ‘fopen’: installwatch.c:2560:51: error: expected ‘)’ before ‘result’ logg("%" PRIdPTR "\tfopen\t%s\t#%s\n",(intptr_t)result, ^~~~~~ installwatch.c:2560:8: warning: format ‘%s’ expects a matching ‘char *’ argument [-Wformat=] logg("%" PRIdPTR "\tfopen\t%s\t#%s\n",(intptr_t)result, ^~~ installwatch.c:2560:8: warning: format ‘%s’ expects a matching ‘char *’ argument [-Wformat=] installwatch.c:2575:51: error: expected ‘)’ before ‘result’ logg("%" PRIdPTR "\tfopen\t%s\t#%s\n",(intptr_t)result, ^~~~~~ installwatch.c:2575:8: warning: format ‘%s’ expects a matching ‘char *’ argument [-Wformat=] logg("%" PRIdPTR "\tfopen\t%s\t#%s\n",(intptr_t)result, ^~~ installwatch.c:2575:8: warning: format ‘%s’ expects a matching ‘char *’ argument [-Wformat=] installwatch.c: At top level: installwatch.c:2600:7: error: conflicting types for ‘getcwd’ char *getcwd(char *buffer,size_t size) { ^~~~~~ In file included from /usr/local/include/sys/stat.h:14:0, from installwatch.c:33: /usr/local/include/io.h:279:17: note: previous declaration of ‘getcwd’ was here char *__cdecl getcwd (char *, int) __MINGW_ATTRIB_DEPRECATED_MSVC2005; ^~~~~~ installwatch.c:2664:30: error: unknown type name ‘uid_t’ int lchown(const char *path, uid_t owner, gid_t group) { ^~~~~ installwatch.c:2664:43: error: unknown type name ‘gid_t’ int lchown(const char *path, uid_t owner, gid_t group) { ^~~~~ installwatch.c:2749:5: error: conflicting types for ‘mkdir’ int mkdir(const char *pathname, mode_t mode) { ^~~~~ In file included from /usr/local/include/sys/stat.h:14:0, from installwatch.c:33: /usr/local/include/io.h:280:15: note: previous declaration of ‘mkdir’ was here int __cdecl mkdir (const char *) __MINGW_ATTRIB_DEPRECATED_MSVC2005; ^~~~~ installwatch.c:2983:7: error: conflicting types for ‘realpath’ char *realpath(const char *file_name,char *resolved_name) { ^~~~~~~~ installwatch.c:556:6: note: previous implicit declaration of ‘realpath’ was here if(!realpath(path,resolved_path)) { ^~~~~~~~ installwatch.c:3309:5: error: conflicting types for ‘utime’ int utime (const char *pathname, const struct utimbuf *newtimes) { ^~~~~ In file included from /usr/local/include/utime.h:6:0, from installwatch.c:47: /usr/local/include/sys/utime.h:115:26: note: previous definition of ‘utime’ was here __CRT_INLINE int __cdecl utime(const char *_Filename,struct utimbuf *_Utimbuf) { ^~~~~ installwatch.c: In function ‘true_stat’: installwatch.c:153:1: warning: control reaches end of non-void function [-Wreturn-type] } ^ installwatch.c: In function ‘true_lstat’: installwatch.c:161:1: warning: control reaches end of non-void function [-Wreturn-type] } ^ installwatch.c: In function ‘true_mknod’: installwatch.c:157:1: warning: control reaches end of non-void function [-Wreturn-type] } ^ In file included from installwatch.c:35:0: installwatch.c: In function ‘open’: installwatch.c:2842:20: warning: ‘mode_t ’ is promoted to ‘int’ when passed through ‘...’ mode = va_arg(ap, mode_t); ^ installwatch.c:2842:20: note: (so you should pass ‘int’ not ‘mode_t ’ to ‘va_arg’) installwatch.c:2842:20: note: if this code is reached, the program will abort At top level: installwatch.c:1040:12: warning: ‘__instw_printdirent64’ defined but not used [-Wunused-function] static int __instw_printdirent64(struct dirent64 *entry) { ^~~~~~~~~~~~~~~~~~~~~ make[1]: *** [Makefile:22: installwatch.o] Error 1 make[1]: Leaving directory '/cygdrive/b/Users/Me/Desktop/checkinstall-1.6.2/installwatch' make: *** [Makefile:11: all] Error 2 

Извините, если я поступаю неправильно, но я совершенно не в себе с этим кодом и сгенерированными ошибками. Я пытался использовать установщик Cygwin для переустановки gcc_coreи других gccпакетов несколько раз безрезультатно.

Я находился в процессе использования этого руководства для компиляции последней версии gccиз исходного кода, прежде чем столкнулся с фатальными ошибками с этим, и решил начать с самого начала и определить, можно ли решить проблему, не добавляя еще больше раздувания в мой Cygwin. монтаж.

0
Попробуйте `. / Configure` вместо` / .configure`, как вы писали выше. Первый выполняет `configure` в текущем каталоге, и, как вы уже написали, он ищет скрытый файл с именем` .configure` в корневом каталоге. headkase 6 лет назад 1
»» Поддерживается только цель Win32! ««: Я полагаю, у вас 64-битная ОС Windows ©? Кроме того: Checkinstall является древним приложением → Обычно проблем со старой версией gcc не возникает: можно использовать любую версию 3.4.6 ... 7.3.0. ** Build ** checkinstall: `$ make`. Т.е. нет файла с именем `configure` Knud Larsen 6 лет назад 1
@headkase Это была опечатка, я попробовал `. / configure`, как указано в выводе. Hashim 6 лет назад 0
@KnudLarsen Я использую 64-разрядную ОС Windows, да, но я не понимаю последнее предложение вашего комментария. Что ты здесь говоришь? Hashim 6 лет назад 0

0 ответов на вопрос

Похожие вопросы