Дело в том что, как я понял, 1.45 написан на каком то старом диалекте который отличается от того что по умолчанию в g++, но может и ошибаюсь. При компиляции по инструкции вылазят синтаксические ошибки.
Сначала компилятору не понравилось слово «xor» в условии препроцессора т.к. в современном оно является ключевым и выскочило вот это:
... /usr/lib/qt-1.45/include/qregion.h:73:182: ошибка: operator «defined» requires an identifier /usr/lib/qt-1.45/include/qregion.h:73:182: ошибка: («xor» is an alternative token for «^» in C++) /usr/lib/qt-1.45/include/qregion.h:73:185: ошибка: missing '(' in expressionТам в файле такая запись (обр.вним. на «xor» в конце условия #if):
#if !(defined(__STRICT_ANSI__) && defined(_CC_GNU_)) && !defined(_CC_EDG_) && !defined(_CC_HP_) && !defined(_CC_HP_ACC_) && !defined(_CC_USLC_) && !defined(_CC_MWERKS_) && !defined(xor)
QRegion xor( const QRegion & ) const;
#endif
Я попробовал добавить ключ -fno-operator-names (убирает текстовые синонимы логич. операторов). На этом участке кода сработало, но ошибка появилась теперь в другом месте (на private и friend):
kernel/qfont.h:130:10: ошибка: ‘void QFont::load(HANDLE) const’ is private kernel/qfont_x11.cpp:114:37: ошибка: в данном контексте kernel/qfont.h:129:10: ошибка: ‘void QFont::initFontInfo() const’ is private kernel/qfont_x11.cpp:115:39: ошибка: в данном контекстеВот из-за каких строчек ошибка:
///kernel/qfont.h:
class Q_EXPORT QFont // font class
{
//...
private:
//...
void initFontInfo() const; //причина здесь
void load( HANDLE=0 ) const; //причина здесь
//...
}
///kernel/qfont_x11.cpp:
class QFontInternal
{
//...
private:
//...
friend void QFont::load(HANDLE) const; //ошибка здесь
friend void QFont::initFontInfo() const; //ошибка здесь
};
При встрече friend ругается на то что указанные методы объявлены приватными.
Попробовал добавить -ansi, но это не сработало.
Благодарю за потраченное время.