| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > C/C++: Сети > Компиляция Boost.network |
| Автор: SynTronic 1.9.2010, 16:09 |
| Доброго времени суток. Есть такая библиотека, претендующая на включение в boost - Boost.Network. Вот её последние исходники - http://github.com/mikhailberis/cpp-netlib/tree/0.7-devel Всё хорошо, только скомпилировать с ней программу - это фантастика! На VS 2010 она может пол часа компилить пустой проект с включённым заголовочным файлом от библиотеки, а потом выдать критическую ошибку, например "fatal error C1076: ограничение компилятора: достигнут предел внутренней кучи", или " error C3859: превышен диапазон адресов виртуальной памяти для PCH; повторите компиляцию с параметром командной строки '-Zm508' или большим", если использовать PCH. Без PCH или с Zm1000 изредко компилится. На VC 2008 до этих критических ошибок дело доходит на порядок быстрее. Всё это дело падает в файле assign_to.hpp из boost.spirit. Я не пойму, может я что-то неправильно делаю, может быть Visual C++ при инстантировании шаблонов таким способом работает? В общем как сделать так, что бы ЭТО можно было скомпилировать? Или у автора библиотеки мегакомпьютер с 4 терабайтами ОЗУ и 10 процессорами стоит? Ведь он как то же это компилирует Почему так может быть? |
| Автор: boostcoder 1.9.2010, 17:10 |
| gcc заюзай. или mingw для венды. |
| Автор: SynTronic 21.10.2010, 09:36 | ||||||
| Заюзал gcc. Только на нём вообще не компилируется Вот непонятненько.... http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2006/n1974.html
Скачал стабильную 0.7. Компилю пример http_client.hpp на VS2010 под Windows 7.
Ну это же издевательство P.S. Комп C2D 2.13GHz, 3GB оперативки, харды SATA... Всегда всё компилируется в момент! |
| Автор: boostcoder 21.10.2010, 09:40 |
| непонял... так скомпилилась, или как? и почему скрываешь сообщения об ошибках? |
| Автор: Alca 21.10.2010, 10:12 | ||
Типа медленно компилиться ))) |
| Автор: boostcoder 21.10.2010, 10:13 |
ничего удивительного. железо-то древнее - |
| Автор: SynTronic 21.10.2010, 13:07 |
| Железо, говорите, древнее... Вот попробовал на Core i7 2.93 и 2Gb оперативной памяти. Тот же самый http_client.hpp. VS 2008. Результаты: release: 01 минута 28.9 с debug: 01 минута 58.6 с Если включить boost::network в предварительно скомпилированный заголовок, то копилятору памяти не хватает. Я уже начинаю понимать, что это нормальное время компиляции. Просто для примера, если кто использует библиотеку, какое у вас время компиляции? И просветите, пожалуйста. Имеет ли смысл включать header-only библиотеки, которые построены только на шаблонах, в предвательно-скомпилированный заголовок? Компилятор вроде всё равно будет в каждом файле, где используется этот заголовок, инстантировать используемые шаблоны или нет? |
| Автор: boostcoder 21.10.2010, 15:19 |
Q9550-8Gb - 31сек. естественно linux-gcc-4.5.1. Добавлено через 1 минуту и 1 секунду SynTronic, вы что, и вправду используете микрософткомпилятор? |
| Автор: djamshud 21.10.2010, 15:29 |
| Бууст шикарен. Я бы на седьмой корке за это время успел собрать целую программу среднего размера. Может быть стоит посмотреть в сторону более других кроссплатформенных средств работы с сетью? В данном случае очевидно, что детишки переиграли с темплейтами, так зачем тянуть эту бяку к себе в проект? |
| Автор: SynTronic 21.10.2010, 16:32 | ||
| boostcoder, пока ещё да Спасибо большое за ответы. Вот нашёл топик автора либы http://comments.gmane.org/gmane.comp.compilers.clang.devel/10517 Компилит тесты от либы...
Думаю, что ответ мне ясен |