cygwin64 :: ./configure возвращает "configure: exit 77" - PullRequest
1 голос
/ 01 марта 2020

Я установил Cygwin64 и теперь хочу установить extundelete .

Итак, я скачал его, распаковал файл, но когда я запускаю ./configure, он говорит:

$ ./configure
Configuring extundelete 0.2.4
configure: error: in `/cygdrive/c/Users/franc/Desktop/extundelete-0.2.4':
configure: error: C++ compiler cannot create executables
See `config.log' for more details

enter image description here

Итак, я открываю файл config.log и нахожу ошибку:

configure:2876: $? = 0
configure:2865: CC -v >&5
Using built-in specs.
COLLECT_GCC=CC
COLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-pc-cygwin/9.2.0/lto-wrapper.exe
Target: x86_64-pc-cygwin
Configured with: /cygdrive/i/szsz/tmpp/gcc/gcc-9.2.0-2.x86_64/src/gcc-9.2.0/configure --srcdir=/cygdrive/i/szsz/tmpp/gcc/gcc-9.2.0-2.x86_64/src/gcc-9.2.0 --prefix=/usr --exec-prefix=/usr --localstatedir=/var --sysconfdir=/etc --docdir=/usr/share/doc/gcc --htmldir=/usr/share/doc/gcc/html -C --build=x86_64-pc-cygwin --host=x86_64-pc-cygwin --target=x86_64-pc-cygwin --without-libiconv-prefix --without-libintl-prefix --libexecdir=/usr/lib --enable-shared --enable-shared-libgcc --enable-static --enable-version-specific-runtime-libs --enable-bootstrap --enable-__cxa_atexit --with-dwarf2 --with-tune=generic --enable-languages=c,c++,fortran,lto,objc,obj-c++ --enable-graphite --enable-threads=posix --enable-libatomic --enable-libgomp --enable-libquadmath --enable-libquadmath-support --disable-libssp --enable-libada --disable-symvers --with-gnu-ld --with-gnu-as --with-cloog-include=/usr/include/cloog-isl --without-libiconv-prefix --without-libintl-prefix --with-system-zlib --enable-linker-build-id --with-default-libstdcxx-abi=gcc4-compatible --enable-libstdcxx-filesystem-ts
Thread model: posix
gcc version 9.2.0 (GCC) 
configure:2876: $? = 0
configure:2865: CC -V >&5
CC: error: unrecognized command line option '-V'
CC: fatal error: no input files
compilation terminated.
configure:2876: $? = 1
configure:2865: CC -qversion >&5
CC: error: unrecognized command line option '-qversion'; did you mean '--version'?
CC: fatal error: no input files
compilation terminated.
configure:2876: $? = 1
configure:2896: checking whether the C++ compiler works
configure:2918: CC    conftest.cpp  >&5
CC: fatal error: cannot execute 'cc1plus': spawn: No such file or directory
compilation terminated.
configure:2922: $? = 1
configure:2960: result: no
configure: failed program was:
| /* confdefs.h */
| #define PACKAGE_NAME "extundelete"
| #define PACKAGE_TARNAME "extundelete"
| #define PACKAGE_VERSION "0.2.4"
| #define PACKAGE_STRING "extundelete 0.2.4"
| #define PACKAGE_BUGREPORT "extundelete.sourceforge.net"
| #define PACKAGE_URL ""
| #define PACKAGE "extundelete"
| #define VERSION "0.2.4"
| /* end confdefs.h.  */
| 
| int
| main ()
| {
| 
|   ;
|   return 0;
| }
configure:2965: error: in `/cygdrive/c/Users/franc/Desktop/extundelete-0.2.4':
configure:2967: error: C++ compiler cannot create executables
See `config.log' for more details

И. файл журнала заканчивается на configure: exit 77

Возможно ли скомпилировать файлы в Cygwin64?

1 Ответ

1 голос
/ 01 марта 2020

Ваша проблема со сборкой, вероятно, связана с разрешениями, унаследованными от C:\Users\franc, которые привинчивают разрешение на выполнение, необходимое для процесса сборки.
Используйте каталоги /home/franc или /usr/src или другие подобные.
Do NOT сборка под Windows Домашними каталогами.

К сожалению, вы не можете собрать программу на Cygwin по другой причине, см. Ниже:

В правильном каталоге у вас будет:

$ ./configure
Configuring extundelete 0.2.4
Writing generated files to disk

Чтобы избежать некоторой ошибки области видимости Вы можете удалить ограничивающий вызов из make-файлов

$ find . -name Makefile -exec sed -e "s/-std=c99//" -i {} \;
$ find . -name Makefile -exec sed -e "s/-std=c++0x -std=c++11//" -i {} \;

, а затем build

$ make
make -s all-recursive
Making all in src
...
insertionops.cc: In function ‘std::ostream& operator<<(std::ostream&, const ext2_inode&)’:
insertionops.cc:36:36: error: ‘const struct ext2_inode’ has no member named ‘i_dir_acl’; did you mean ‘i_file_acl’?
   36 |   os << "Directory ACL: " << inode.i_dir_acl << std::endl;
      |                                    ^~~~~~~~~
      |                                    i_file_acl
make[2]: *** [Makefile:437: extundelete-insertionops.o] Error 1
make[1]: *** [Makefile:268: all-recursive] Error 1
make: *** [Makefile:208: all] Error 2

и не можете преодолеть отсутствие расширенного свойства в структуре inode Cygwin ext2.
Поскольку Cygwin является Windows программой пользовательского режима, она не может смонтировать файловую систему, не распознаваемую Windows, так как ее поддержка ext2 очень ограничена и в основном сосредоточена на создании файловой системы на внешнем диске, но на самом деле она не может используй это.

...