LINUX.ORG.RU
Ответ на: комментарий от Sylvia

ну например qt4 требует gcc >= 3.2, linux и qemu(только там наоборот, старые версии требуют компилятор 3-й версии)

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

ничего что GCC < 3.4 это совсем старый для C++ компилятор?
он медленный, собирает достаточно медленный код, не поддерживает достаточно многие вещи, он даже по ABI не совместим, используется libstdc++.so.5 а не 6 , как сейчас.

также в новых компиляторах выше требования к соответствию кода стандартам,
многое из того, что раньше выдавало лишь предупреждения, теперь будет приводить к ошибке, ну и некоторые вещи переопределили , все таки NPTL, TLS (thread local storage) и т д )

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

Весьма интересная инфа кстати, спасибо. И да, мне полегче стало без всяких санитаров. Уже почти не заметна боль в пазухах, даже при движении и сморкании.

flareguner
()
Ответ на: комментарий от Sylvia

gcc 3.3 вышел в 2003 году. К тому времени уже 2 года существовал стандарт C99 и обновился ISO/IEC 14882 для C++.

Что касательно libstdc++.so.5 а не 6, то это важно для бинарной совместимости но не должно влиять на совместимость при компиляции. Разумеется при условии четкого следования стандарту.

NPTL, TLS вообще относятся к системным библиотекам, а не компилятору.

cvs-255 ★★★★★
() автор топика

> Эта такая чудесная поддержка стандартов в GCC?

2.95, например, действительно во многом клал на стандарты, но постепенно они исправились

aho
()
Ответ на: комментарий от cvs-255

> К тому времени уже 2 года существовал стандарт C99

его вроде как полностью и до сих пор не поддерживают

aho
()
Ответ на: комментарий от cvs-255

> но не должно влиять на совместимость при компиляции.

В Debian , около 1000 программ рехтанули, в свое время, при при включении Amd64 на пмж. Такая вот совместимость.

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

g++ -c -O2 -fomit-frame-pointer -O2 -fPIC -Wall -W -DQT_BOOTSTRAPPED -DQT_LITE_UNICODE -DQT_NO_CAST_FROM_ASCII -DQT_NO_CAST_TO_ASCII -DQT_NO_CODECS -DQT_NO_DATASTREAM -DQT_NO_GEOM_VARIANT -DQT_NO_LIBRARY -DQT_NO_QOBJECT -DQT_NO_STL -DQT_NO_SYSTEMLOCALE -DQT_NO_TEXTSTREAM -DQT_NO_THREAD -DQT_NO_UNICODETABLES -DQT_NO_USING_NAMESPACE -D_LARGEFILE64_SOURCE -D_LARGEFILE_SOURCE -I../../../mkspecs/linux-g++ -I. -I../../../include -I../../../include/QtCore -I../../../include/QtXml -o .obj/release-static/qdiriterator.o ../../corelib/io/qdiriterator.cpp
../../corelib/io/qdiriterator.cpp: In method `QDirIteratorPrivate::QDirIteratorPrivate(const QString &, const QStringList &, QFlags<QDir::Filter>, QFlags<QDirIterator::IteratorFlag>)':
../../corelib/io/qdiriterator.cpp:156: ambiguous overload for `bool ? QDir::Filter : QFlags<QDir::Filter> &'
../../corelib/io/qdiriterator.cpp:156: candidates are: operator ?:(bool, QFlags<QDir::Filter>, QFlags<QDir::Filter>) <builtin>
../../corelib/io/qdiriterator.cpp:156: operator ?:(bool, int, int) <builtin>
make[1]: *** [.obj/release-static/qdiriterator.o] Error 1
make[1]: Leaving directory `/var/tmp/qt-everywhere-opensource-src-4.7.2/src/tools/bootstrap'



Sylvia ★★★★★
()

А почему новые версии программ не собираются старыми компиляторами?

Гораздо хуже, что старые версии программ не собираются новыми компиляторами.

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

> Гораздо хуже, что старые версии программ не собираются новыми компиляторами.

потому-что там точно также плевали на стандарты - благо gcc позволял

aho
()

Во-первых, появляются новые стандарты и улучшается поддержка старых.

А на самом деле, программисты умудряются писать такое... Мама не горюй...

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