Вот есть программа: http://www-i6.informatik.rwth-aachen.de/web/Software/g2p.html
Я скачиваю и ставлю её на Fedora 12 i686
Там есть установочный скрипт на Питоне, я его запускаю, как написано в ридми:
[root@testbed g2p]# python setup.py install --prefix /opt
и получаю, в конечном итоге,
... gcc -pthread -fno-strict-aliasing -DNDEBUG -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -m32 -march=i686 -mtune=atom -fasynchronous-unwind-tables -D_GNU_SOURCE -fPIC -fwrapv -fPIC -DMULTIGRAM_SIZE=2 -I/usr/lib/python2.6/site-packages/numpy/core/include -I/usr/include/python2.6 -c Utility.cc -o build/temp.linux-i686-2.6/Utility.o -fpermissive
Utility.cc: In function ‘int Core::getline(std::istream&, std::string&, std::string)’:
Utility.cc:43: error: ‘EOF’ was not declared in this scope
Utility.cc:48: error: ‘EOF’ was not declared in this scope
error: command 'gcc' failed with exit status 1
То есть, какое-то грубейшее нарушение в коде (символ EOF не определён).
Как такое может быть? Ведь не могли же авторы программы не заметить такую тупую ошибку?
Значит, имеет место какая-то несовместимость среды компилляции.
Вот и вопрос — какая? При каких условиях могут получаться такие грубые ошибки при компилляции?
PS
Вот код на Си++, последняя строка — это строка с ошибкой:
#include «Utility.hh»
#include <algorithm>
#include <cstdlib>
#include <iomanip>
#include <iostream>
#include <string>
using namespace Core;
int Core::getline(std::istream& is, std::string& str, std::string delim) {
int token;
std::string::size_type pos = std::string::npos;
// check if end of stream is reached
if (is.get() == EOF) return EOF;