crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

> Адекватная замена для MS STL deque?, нужна замена в связи с багой в MS STL
Iron Bug
  опции профиля:
сообщение 6.10.2010, 13:45
Сообщение #1


Профессионал
*****

Группа: Модератор
Сообщений: 1611
Регистрация: 6.2.2009
Из: Yekaterinburg
Пользователь №: 533

Спасибо сказали: 219 раз(а)




Репутация:   12  


В связи с обнаружившейся страшной багой ищу какую-нибудь опенсорцную реализацию дека (ну или хотя бы очереди с итератором или оператором []).

Поиск по гуглу пока не дал ничего вразумительного (слишком распространённое название - deque), а свой огород городить банально не хватает времени... :( Конечно, если не найду, то придётся возиться с динамическими массивами, а у меня ещё дофига другой работы, причём довольно срочной.
Может, кто подскажет такую готовую библиотечку на С++ или С?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
 
Начать новую тему
Ответов
Iron Bug
  опции профиля:
сообщение 7.10.2010, 13:15
Сообщение #2


Профессионал
*****

Группа: Модератор
Сообщений: 1611
Регистрация: 6.2.2009
Из: Yekaterinburg
Пользователь №: 533

Спасибо сказали: 219 раз(а)




Репутация:   12  


Ура! Я собрала STLport с бустом под студией 2005.

Пишу маленькую инструкцию:

Сборка STLport + Boost компилятором MSVC 2005

(я собирала с версиями STLport 5.2.1, Boost 1.44.0, MSVS 2005 SP1)

1. Качаем последнюю версию буста тут. Разворачиваем куда-либо. Допустим, пускай это будет папка c:/src/boost_1_44_0. Оттуда же качаем уже собранный bjam и помещаем bjam.exe в корневую папку с бустом (вообще, он поставляется прямо с бустом и можно его самостоятельно собрать, запустив bootstrap в корневом каталоге буста).

2. Качаем последнюю версию STLport тут. Разворачиваем куда-либо. Допустим, пускай это будет папка c:/src/STLport-5.2.1.

3. Собираем буст с заголовками STLPort:
3.1. В каталоге c:/src/boost_1_44_0/tools/build/v2 правим файл user-config.jam. Добавляем строку с указанием расположения заголовочных файлов STLport:
Цитата
using stlport : 5.2.1 : с:/src/STLPort-5.2.1/stlport ;

Пробел перед завершающим символом ";" обязателен! (блок code убивает пробелы - так что вставляю в quote)
(Буст добавляет букву p к именам библиотек, которая означает, что данная сборка собрала с STLport. Так что сборка безопасна, если у вас собраны другие варианты библиотеки).

3.2. Из корневого каталога буста (там уже лежит bjam.exe) запускаем bjam c нужными нам параметрами. Например, для полной сборки буста это будет такая строка:
bjam stdlib=stlport --toolset=msvc-8.0 --build-dir="папка, где будут храниться временные файлы во время сборки" --build-type=complete "путь, куда буст будет складывать готовые файлы"

Обратите внимание, добавлена опция stdlib=stlport - это и есть указание использовать наш STLport.
Запускаем bjam и идём отдыхать: собирается он долго и нудно. Чтобы было быстрее, можете добавить в строку опцию -jN, где N - количество ядер CPU у вас на компе - тогда он будет распараллеливать процесс сборки. Можете запустить bjam --help и посмотреть другие параметры: например, можно указать, куда конкретно складывать заголовки и библиотеки, и прочие такие полезные опции.

4. Собираем сам STLport:
4.1. Открываем консоль (cmd). Запускаем установку переменных окружения MSVC 2005. Если студия установлена в стандартном варианте, с 32-битной платформой, то это будет выглядеть так:
"С:\Program Files\Microsoft Visual Studio 8\VC\bin\vcvars32.bat"

4.2. Далее НЕ ВЫХОДЯ из консоли, перемещаемcя в ней к нашей папке с STL (cd c:/src/STLport-5.2.1) и в этой папке выполняем следующую команду:
configure msvc8 --with-static-rtl

Я собирала со статической линковкой стандартных библиотек. Можете использовать динамическую, заменив опцию на --with-dynamic-rtl.
4.3. НЕ ВЫХОДЯ из консоли, переходим в каталог c:/src/STLport-5.2.1/build/lib и запускаем там команду
nmake /fmsvc.mak install

Ждём, когда скомпилится. Детально про сборку и возможности проверки собранного STLport можно почитать в файле c:/src/STLport-5.2.1/doc/README.msvc (правда, там опечатка с указанием опции компилятора - он задаётся без префикса -c).

5. Открываем студию и прописываем в студии пути для нашего STL: меню Tools->Options. Настройка VC++ Directories:
Platform: Win32, Show directories for: Include files - добавить ПЕРЕД всеми стандартными путями путь c:/src/STLport-5.2.1/stlport
Platform: Win32, Show directories for: Library files - добавить ПЕРЕД всеми стандартными путями путь c:/src/STLport-5.2.1/lib

Собственно, всё.

Код править не нужно, насколько я понимаю. У меня deque заработал без проблем. Просто перекомпиляция.

P.S. Теоретически, можно собирать и без буста.

P.P.S. Если вдруг кто-то захочет собрать и что-то вдруг не будет собираться - сообщайте. Я могла что-то упустить, хотя вроде бы всё написала и порядок не перепутала.

Сообщение отредактировал Iron Bug - 7.10.2010, 15:47
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Сообщений в этой теме
- Iron Bug   Адекватная замена для MS STL deque?   6.10.2010, 13:45
- - Алексей1153   а какие основные плюсы использования дека ? (не до...   6.10.2010, 13:52
- - Iron Bug   Цитата(Алексей1153 @ 6.10.2010, 16:52) а ...   6.10.2010, 13:58
- - Алексей1153   Цитата(Iron Bug @ 6.10.2010, 16:58) он не...   6.10.2010, 14:03
- - Iron Bug   Цитата(Алексей1153 @ 6.10.2010, 17:03) ну...   6.10.2010, 14:30
- - Алексей1153   Цитата(Iron Bug @ 6.10.2010, 17:30) STL н...   6.10.2010, 14:37
- - Iron Bug   Нашла кое-какие опенсорцные STL библиотеки: http:/...   6.10.2010, 14:46
- - Алексей1153   Цитата(Iron Bug @ 6.10.2010, 17:46) а вых...   6.10.2010, 14:48
- - kwisp   Iron Bug, есть еще реализация stl на сайте sgi и ...   6.10.2010, 14:53
- - Iron Bug   Цитата(Алексей1153 @ 6.10.2010, 17:48) да...   6.10.2010, 15:01
- - kwisp   Iron Bug, попробовал твой пример в linux - память...   6.10.2010, 15:26
- - Iron Bug   Цитата(kwisp @ 6.10.2010, 18:26) попробов...   6.10.2010, 15:35
- - kwisp   Цитата(Iron Bug @ 6.10.2010, 16:35) я пиш...   6.10.2010, 15:41
- - Iron Bug   Цитата(kwisp @ 6.10.2010, 18:41) ну тут к...   6.10.2010, 15:45
- - Алексей1153   Цитата(kwisp @ 6.10.2010, 18:26) конечно ...   6.10.2010, 18:27
- - Iron Bug   дебаг значения не имеет. масштаб мельче. смотри ме...   6.10.2010, 22:16
|- - AD   Цитата(Iron Bug @ 6.10.2010, 23:16) собст...   7.10.2010, 7:59
- - Алексей1153   Цитата(Iron Bug @ 7.10.2010, 1:16) и ещё ...   6.10.2010, 22:34
- - Iron Bug   я пока не утверждала, что опенсорцный STL эффектив...   7.10.2010, 8:40
|- - AD   Блин. Где собрать? Как подключить? Внешне отличать...   7.10.2010, 8:42
- - Iron Bug   Цитата(AD @ 7.10.2010, 11:42) Блин. Где с...   7.10.2010, 9:52
- - Iron Bug   Ура! Я собрала STLport с бустом под студией 20...   7.10.2010, 13:15
- - Iron Bug   Чуть поторопилась я с вариантом сборки STLport c б...   7.10.2010, 15:52
- - Iron Bug   В общем, под вендой у меня всё заработало. Есть не...   8.10.2010, 9:50
- - Iron Bug   Аццкая жесть или как под вендой заставить STLport ...   11.10.2010, 13:21


Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 25.4.2024, 20:34