Cygwin новый пользователь * как создать исполняемый файл? - PullRequest
0 голосов
/ 27 февраля 2019

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

Мне нужно сгенерировать исполняемый файл программы, которую я хочу использовать, которая была сделана на c ++.Когда я набираю «make» в нужном каталоге, у меня появляется список ошибок, и я не знаю, что они означают.Это может быть что-то с моим make-файлом?

Вот инструкции: «Прилагаемый make-файл должен позволять строить Match на любой платформе компилятора на основе GNU, а также на многих других.Вам может потребоваться изменить make-файл, если ваш компилятор не называется «c ++» или требует других параметров командной строки.”

Вот ошибки:

    $ make
c++ -O4 -c match.cc -o match.o -Wall -g
In file included from match.cc:37:0:
series.hh: In member function ‘void core::insert(const point&, int)’:
series.hh:161:5: error: ‘memmove’ was not declared in this scope
     memmove(&data[i+1], &data[i], sizeof(point)*(size-i-1));
     ^~~~~~~
series.hh:161:5: note: suggested alternative: ‘wmemmove’
     memmove(&data[i+1], &data[i], sizeof(point)*(size-i-1));
     ^~~~~~~
     wmemmove
series.hh: In member function ‘void core::erase(int)’:
series.hh:166:5: error: ‘memmove’ was not declared in this scope
     memmove(&data[i], &data[i+1], sizeof(point)*(size-i-1));
     ^~~~~~~
series.hh:166:5: note: suggested alternative: ‘wmemmove’
     memmove(&data[i], &data[i+1], sizeof(point)*(size-i-1));
     ^~~~~~~
     wmemmove
series.hh: In member function ‘int core::averageduplicates()’:
series.hh:214:2: error: ‘memmove’ was not declared in this scope
  memmove(&data[i+1],&data[j],sizeof(point)*(size-j));
  ^~~~~~~
series.hh:214:2: note: suggested alternative: ‘wmemmove’
  memmove(&data[i+1],&data[j],sizeof(point)*(size-j));
  ^~~~~~~
  wmemmove
series.hh: At global scope:
series.hh:239:25: warning: dynamic exception specifications are deprecated in C++11 [-Wdeprecated]
   void build_labelmap() throw(format_error) {
                         ^~~~~
series.hh:253:44: warning: dynamic exception specifications are deprecated in C++11 [-Wdeprecated]
   int lookup_label(int label, float depth) throw(format_error) {
                                            ^~~~~
series.hh:410:50: warning: dynamic exception specifications are deprecated in C++11 [-Wdeprecated]
   void addtiept(vector<tiept> &tiemap, tiept &t) throw(format_error) {
                                                  ^~~~~
series.hh:433:42: warning: dynamic exception specifications are deprecated in C++11 [-Wdeprecated]
   void buildmaps(series &s1, series &s2) throw(format_error) {
                                          ^~~~~
series.hh:474:48: warning: dynamic exception specifications are deprecated in C++11 [-Wdeprecated]
 tiepts read_tiefile(string name, ostream &log) throw(format_error);
                                                ^~~~~
series.hh:488:30: warning: dynamic exception specifications are deprecated in C++11 [-Wdeprecated]
   void apply_gaps(series &s) throw(format_error) {
                              ^~~~~
series.hh:539:32: warning: dynamic exception specifications are deprecated in C++11 [-Wdeprecated]
 gaps read_gapfile(string name) throw(format_error);
                                ^~~~~
make: *** [Makefile:10: match.o] Error 1

Вот файл makefile:

VERSION=2.3

all: match

%: %.o
    c++ $^ -o $@ $(LDFLAGS)

.cc.o:
#   c++ -c $< -o $@ -Wall -g $(CFLAGS)
    c++ -O4 -c $< -o $@ -Wall -g $(CFLAGS)

match: match.o series.o config.o normalize.o floatnan.o
match.o: match.cc config.hh series.hh normalize.hh floatnan.hh
series.o: series.cc series.hh floatnan.hh
config.o: config.cc config.hh floatnan.hh
normalize.o: normalize.cc normalize.hh series.hh floatnan.hh
floatnan.o: floatnan.cc floatnan.hh

clean: 
    rm -f *.o match *~ match.exe match.log *.new xmatch score_matrix

tar:
    sed '/\S/ ! d;s/^/Match-${VERSION}\//' ../manifest > ../manifest.tmp
    tar -cz -C ../.. -f ../match-${VERSION}.tgz -T ../manifest.tmp

check-manifest:
    cd .. && find . -type f | sed 's/^.\///' | grep -v ,v | sort > manifest.tmp
    sort ../manifest > ../manifest.tmp1
    diff ../manifest.tmp1 ../manifest.tmp; true
    pwd | grep 'Match-${VERSION}/' > /dev/null || (echo version mismatch; false)

Следуя совету, приведенному ниже в комментарии, в файле" series.hh ",Я заменил «memmove» на «std :: memmove».

Я снова набираю «make», и теперь я получаю это:

$ make
c++ -O4 -c match.cc -o match.o -Wall -g
In file included from match.cc:37:0:
series.hh:9:1: error: expected unqualified-id before string constant
 "//This program is distributed in the hope that it will be useful,"
 ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from /usr/lib/gcc/x86_64-pc-cygwin/7.4.0/include/c++/fstream:42:0,
                 from series.hh:36,
                 from match.cc:37:
/usr/lib/gcc/x86_64-pc-cygwin/7.4.0/include/c++/x86_64-pc-cygwin/bits/basic_file.h:57:7: error: ‘__c_file’ does not name a type; did you mean ‘__basic_file’?
       __c_file*  _M_cfile;
       ^~~~~~~~
       __basic_file
/usr/lib/gcc/x86_64-pc-cygwin/7.4.0/include/c++/x86_64-pc-cygwin/bits/basic_file.h:63:28: error: expected ‘)’ before ‘*’ token
       __basic_file(__c_lock* __lock = 0) throw ();
                            ^
/usr/lib/gcc/x86_64-pc-cygwin/7.4.0/include/c++/x86_64-pc-cygwin/bits/basic_file.h:66:41: error: ‘__c_lock’ has not been declared
       __basic_file(__basic_file&& __rv, __c_lock* __lock = 0) noexcept
                                         ^~~~~~~~
/usr/lib/gcc/x86_64-pc-cygwin/7.4.0/include/c++/x86_64-pc-cygwin/bits/basic_file.h:88:7: error: expected ‘;’ at end of member declaration
       sys_open(__c_file* __file, ios_base::openmode);
       ^~~~~~~~
/usr/lib/gcc/x86_64-pc-cygwin/7.4.0/include/c++/x86_64-pc-cygwin/bits/basic_file.h:88:24: error: expected ‘)’ before ‘*’ token
       sys_open(__c_file* __file, ios_base::openmode);
                        ^
/usr/lib/gcc/x86_64-pc-cygwin/7.4.0/include/c++/x86_64-pc-cygwin/bits/basic_file.h:91:60: error: ‘std::__basic_file<char>* std::__basic_file<char>::sys_open(int, std::ios_base::openmode)’ conflicts with a previous declaration
       sys_open(int __fd, ios_base::openmode __mode) throw ();
                                                            ^
/usr/lib/gcc/x86_64-pc-cygwin/7.4.0/include/c++/x86_64-pc-cygwin/bits/basic_file.h:88:16: note: previous declaration ‘std::__basic_file<char>* std::__basic_file<char>::sys_open’
       sys_open(__c_file* __file, ios_base::openmode);
                ^~~~~~~~
/usr/lib/gcc/x86_64-pc-cygwin/7.4.0/include/c++/x86_64-pc-cygwin/bits/basic_file.h:102:21: error: ‘__c_file’ does not name a type; did you mean ‘__basic_file’?
       _GLIBCXX_PURE __c_file*
                     ^~~~~~~~
                     __basic_file
/usr/lib/gcc/x86_64-pc-cygwin/7.4.0/include/c++/x86_64-pc-cygwin/bits/basic_file.h: In constructor ‘std::__basic_file<char>::__basic_file(std::__basic_file<char>&&, int*)’:
/usr/lib/gcc/x86_64-pc-cygwin/7.4.0/include/c++/x86_64-pc-cygwin/bits/basic_file.h:67:9: error: class ‘std::__basic_file<char>’ does not have any field named ‘_M_cfile’
       : _M_cfile(__rv._M_cfile), _M_cfile_created(__rv._M_cfile_created)
         ^~~~~~~~
/usr/lib/gcc/x86_64-pc-cygwin/7.4.0/include/c++/x86_64-pc-cygwin/bits/basic_file.h:67:23: error: ‘class std::__basic_file<char>’ has no member named ‘_M_cfile’; did you mean ‘__basic_file’?
       : _M_cfile(__rv._M_cfile), _M_cfile_created(__rv._M_cfile_created)
                       ^~~~~~~~
                       __basic_file
/usr/lib/gcc/x86_64-pc-cygwin/7.4.0/include/c++/x86_64-pc-cygwin/bits/basic_file.h:69:7: error: ‘class std::__basic_file<char>’ has no member named ‘_M_cfile’; did you mean ‘__basic_file’?
  __rv._M_cfile = nullptr;
       ^~~~~~~~
       __basic_file
/usr/lib/gcc/x86_64-pc-cygwin/7.4.0/include/c++/x86_64-pc-cygwin/bits/basic_file.h: In member function ‘void std::__basic_file<char>::swap(std::__basic_file<char>&)’:
/usr/lib/gcc/x86_64-pc-cygwin/7.4.0/include/c++/x86_64-pc-cygwin/bits/basic_file.h:79:12: error: ‘_M_cfile’ was not declared in this scope
  std::swap(_M_cfile, __f._M_cfile);
            ^~~~~~~~
/usr/lib/gcc/x86_64-pc-cygwin/7.4.0/include/c++/x86_64-pc-cygwin/bits/basic_file.h:79:12: note: suggested alternative: ‘_Setfill’
  std::swap(_M_cfile, __f._M_cfile);
            ^~~~~~~~
            _Setfill
/usr/lib/gcc/x86_64-pc-cygwin/7.4.0/include/c++/x86_64-pc-cygwin/bits/basic_file.h:79:26: error: ‘class std::__basic_file<char>’ has no member named ‘_M_cfile’; did you mean ‘__basic_file’?
  std::swap(_M_cfile, __f._M_cfile);
                          ^~~~~~~~
                          __basic_file
In file included from series.hh:36:0,
                 from match.cc:37:
/usr/lib/gcc/x86_64-pc-cygwin/7.4.0/include/c++/fstream: At global scope:
/usr/lib/gcc/x86_64-pc-cygwin/7.4.0/include/c++/fstream:107:7: error: ‘__c_lock’ does not name a type; did you mean ‘__c_locale’?
       __c_lock           _M_lock;
       ^~~~~~~~
       __c_locale
In file included from /usr/lib/gcc/x86_64-pc-cygwin/7.4.0/include/c++/fstream:1081:0,
                 from series.hh:36,
                 from match.cc:37:
/usr/lib/gcc/x86_64-pc-cygwin/7.4.0/include/c++/bits/fstream.tcc: In constructor ‘std::basic_filebuf<_CharT, _Traits>::basic_filebuf()’:
/usr/lib/gcc/x86_64-pc-cygwin/7.4.0/include/c++/bits/fstream.tcc:80:43: error: class ‘std::basic_filebuf<_CharT, _Traits>’ does not have any field named ‘_M_lock’
     basic_filebuf() : __streambuf_type(), _M_lock(), _M_file(&_M_lock),
                                           ^~~~~~~
/usr/lib/gcc/x86_64-pc-cygwin/7.4.0/include/c++/bits/fstream.tcc:80:63: error: ‘_M_lock’ was not declared in this scope
     basic_filebuf() : __streambuf_type(), _M_lock(), _M_file(&_M_lock),
                                                               ^~~~~~~
/usr/lib/gcc/x86_64-pc-cygwin/7.4.0/include/c++/bits/fstream.tcc:80:63: note: suggested alternative: ‘_M_seek’
     basic_filebuf() : __streambuf_type(), _M_lock(), _M_file(&_M_lock),
                                                               ^~~~~~~
                                                               _M_seek
/usr/lib/gcc/x86_64-pc-cygwin/7.4.0/include/c++/bits/fstream.tcc: In constructor ‘std::basic_filebuf<_CharT, _Traits>::basic_filebuf(std::basic_filebuf<_CharT, _Traits>&&)’:
/usr/lib/gcc/x86_64-pc-cygwin/7.4.0/include/c++/bits/fstream.tcc:97:5: error: class ‘std::basic_filebuf<_CharT, _Traits>’ does not have any field named ‘_M_lock’
     _M_lock(), _M_file(std::move(__rhs._M_file), &_M_lock),
     ^~~~~~~
/usr/lib/gcc/x86_64-pc-cygwin/7.4.0/include/c++/bits/fstream.tcc:97:51: error: ‘_M_lock’ was not declared in this scope
     _M_lock(), _M_file(std::move(__rhs._M_file), &_M_lock),
                                                   ^~~~~~~
/usr/lib/gcc/x86_64-pc-cygwin/7.4.0/include/c++/bits/fstream.tcc:97:51: note: suggested alternative: ‘_M_seek’
     _M_lock(), _M_file(std::move(__rhs._M_file), &_M_lock),
                                                   ^~~~~~~
                                                   _M_seek
In file included from match.cc:37:0:
series.hh: At global scope:
series.hh:43:1: error: expected unqualified-id before string constant
 "#include ""assert.h"""
 ^~~~~~~~~~~
series.hh:62:1: error: expected unqualified-id before string constant
 "  float x, y;"
 ^~~~~~~~~~~~~~~
series.hh:67:1: error: expected unqualified-id before string constant
 "static float intervalmap(float i1b, float i1e, float i2b, "
 ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
series.hh:70:1: error: expected declaration before ‘}’ token
 }
 ^
make: *** [Makefile:10: match.o] Error 1

Что мне делать?Алп

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