LINUX.ORG.RU

Помогите подобрать ключи для компилации Qt 1.45


1

2

Дело в том что, как я понял, 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, но это не сработало.

Благодарю за потраченное время.

★★★

какие интересные личности порой всплывают в интернетах

Помогите подобрать ключи для компилации Qt 1.45

звучит как «помогите подобрать отмычки к саркофагу Ленина»

anonymous
()

Я бы тупо объявил QFont friend-классом для QFontInternal.

Если не секрет, зачем тебе такая древняя Qt?

tailgunner ★★★★★
()
Ответ на: комментарий от devl547

ну может хотя бы 3-ка какая
элементарно же - никто сабж не адаптировал под текущии реалии gcc^Wg++
порой код и через 2-3 года уже не собирается просто так, а тут десяточек уже

megabaks ★★★★
()
Последнее исправление: megabaks (всего исправлений: 1)
Ответ на: комментарий от tailgunner

Программу одну собрать захотел, а она на этом самом 1.45.Это пргограмма для перевода слов slowo, даже не помню где взял.

normann ★★★
() автор топика
Ответ на: комментарий от normann

Есть же масcа других словарей, зачем именно это древность ? У нее, кстати, есть версия на x11, может она соберется лучше, чем эта древнючая qt

fritew5
()
Ответ на: комментарий от anonymous

Если займешься то дай знать, хочу заценить результат.

normann ★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.