Russian thread

проблема решилась добавлением #define BOOST_NO_RVALUE_REFERENCES в client.cpp и sdafx.h сервера

2 Ivan
Приветствую. Нет ли планов новый билд выложить не только в исходных кодах, но и в виде deb-пакета для Linux?
К своему стыду, у меня так и не получилось собрать VCMI под Ubuntu.

Пока только в далеких планах. Сам я с дебами не разбирался, а желающих этим занятся нет.
А что не так со сборкой?

Если что - все инструкции в файле readme.LINUX (vcmi.svn.sourceforge.net/svnroo … ADME.linux)
Для сборки сейчас нужен gcc-4.5, который есть только начиная с Ubuntu 11.04.

Хмм… а может попробую с дебами разобраться. Но ничего не обещаю пока что.

Ivan, привет.
Пытался собрать .deb пакет .88 версии

test -z "/usr/lib/vcmi/AI" || /bin/mkdir -p "/media/sd/build/vcmi/debian/vcmi//usr/lib/vcmi/AI"
 /bin/bash ../../libtool   --mode=install /usr/bin/install -c   libStupidAI.la '/media/sd/build/vcmi/debian/vcmi//usr/lib/vcmi/AI'
libtool: install: error: cannot install `libStupidAI.la' to a directory not ending in /usr/local/lib/vcmi/AI
make[5]: *** [install-vcmiaiLTLIBRARIES] Error 1
make[5]: Leaving directory `/media/sd/build/vcmi/AI/StupidAI'

Нет идей в чем может быть причина?

Привет. Такое может возникнуть если запустить ./configure несколько раз с разными параметрами (вполне может быть - /usr/local/… это дефолтный путь)
В этом случае исправить можно через “make distclean” или стащив исходники заново (например из svn) и пересобрать сначала.

Если не исправится, то вопрос - как именно этот deb собираете?
Уже собранные .deb-ы есть тут: wiki.vcmi.eu/index.php?title=Ins … n_on_Linux

Ivan:
Те дебы для x86, а мы под ARMv7 собираем

Да, distclean не пробовал, ибо долго, как верно подметил kottt мы под арм собираем.
Но сегодня запустил чистую сборку с транка, посмотрим.
Но проблема основная вырисовывается в другом:
При загрузке карты клиент зависает. Попозже постараюсь выложить strace и дебаг.
собираем просто: dpkg-buildpackage и вперед. (:

Собрал из транка, работает. (:

Установил Героев 3 “Дыхание смерти” под wine (путь установки указал на английском: C:\Games\SoD). Затем установил WoG. После этого скомпилировал из исходников VCMI (система OpenSUSE последняя x64). Запускал vcmiclint нормально. Попробовал изменить разрешение на своё 1280х1024 и после перезапуска дальше главного меню не ухожу: Failed to find file AdRollvr1280.pcx
Никак не могу исправить разрешение. Помогите, кто знает, где можно вручную прописать нужное? Или где взять этот AdRollvr1280.pcx. Перекомпиляция и перезапись файлов в папке /usr/local/share/vcmi не помогает :frowning:

Надо распаковать этот архив в /usr/local/share/vcmi (кроме папки config)
download.vcmi.eu/vcmi-data_0.89.tar.gz

Ivan, спасибо! Попробую :slight_smile: Только что-то не нашёл тут раньше на сайте и форуме этого…

Привет!
Долго заставлял сие чудо компилиться под slackware… свершилось.
Запускается нормально, но при попытке запустить кампанию - виснит наглухо (после выбора бонуса и нажатия конопки “begin”).
То есть не вываливается, ошибок нет, просто висит, пока не кильнешь).
Проявляется на одиночном сценарии. В кампании же вываливается с: "vcmiclient: CLodHandler.cpp:26: std::string readString(const ui8*, int&): Assertion `len >= 0 && len <= 500000’ failed."
Использую исходники с trunk.
Так же (не помню когда) ругается на отсутствие NEUTRAL.H3C
Что может быть?

p.s. boost-1.49

Чего так долго? Вроде как привели в порядок ридми или что-то все еще не так?

Кампании еще недоделаны, багов там больше некуда - лучше сценарии запускать пока что.
Но падать при старте ни одни ни вторые не должны.

Что не так - не уверен. Возможно в процессах остался зависший сервер - в этом случае нужно убить vcmiserver и только потом запускать клиент (vcmiclient который)
Если в сценариях все равно зависает:

  • проверить есть ли в процессах vcmiserver (должен запуститься вместе со стартом сценария)
  • если есть возможность, то подключиться с gdb и снять стек с клиента и сервера:
$ gdb --pid={process id}
(gdb) set logging on
(gdb) thread apply all bt full
(gdb) quit

Вывод (gdb.txt) выложить сюда вместе с логами (текстовики в папке ~/.vcmi)

NEUTRAL.H3C это кампания Spoils of War / Трофеи Войны - тут похоже опечатка у нас. Должно быть NEUTRAL1.H3C, исправлю

Долго, в основном из за того что моя система давно не видела апгрейда.
И либы старые, и компилятор и coreutils. Сначала конфигуратор никак не хотетл видеть libSDL и boost, потом вылетал при начале компиляции… но это такое, старая система, работает на машине уже лет 6 или 7… последний апгрейд года 2 назад был, так что простительно :wink:

Сейчас все компилится без проблем, за исключением ворнингов. И есть еще один момент.
Вроде как при сборке ERMParser.lo (точно не помню, но что-то из ERM) - машина начинала уходить в трэшинг. То есть активно юзать своп. И я просто через 10 минут этого убийственного процесса вырубал компилятор. Видать 1 гига памяти для компиляции маловато. Добавил еще гиг оперативы и все собралось без проблем, при этом памяти было занято 1,2-1,3 гига.

Ага, благодарю за совет!
Как раз сервер то и не стартует. В процессах ничего. Причем в логах даже нет VCMI_Server_log.txt
Лог сервера появляется только после запуска его вручную. Но он тут же благополучно падает:
Port 3030 will be used.
Loading .lod files: 90
General text handler: 40
…skipped…
Spell handler: 0
CVCMIServer created!
Function not implemented
terminate called after throwing an instance of 'boost::interprocess::interprocess_exception’
what(): Function not implemented

gdb мне был без надобности так что в системе его нет.
Если свет не прольется, буду ставить.
Может буст выделывается?

Свопинг при компиляции ERM - возможно. Уж слишком активно там используется всякая магия буста. Наверно стоит как-нибудь сделать его компиляцию опциональной - в игре это пока нигде не используется.

А падает похоже и вправду буст.
Ругается на boost::interprocess. Гуглением нашел такую же ошибку:
slackwiki.com/ATI_Graphics#I … the_Driver
Стоит попробовать /etc/fstab поправить.

Ivan благодарю!
Включил tmpfs в fstab. Клиент и сервер стартуют, все работает…
Да… еще на счет свопинга в ERM - если конфигурить через cmake а потом собирать - то в трэшинг машина не уходит.

Ivan, а оно должно тормозить?
Герои передвигаются мучительно медленно, а ждать пока походит комп можно почти минуту (если много противников).
При этом загрузка проца всего процентов на 15.
И вот это постоянно:
Warning: Cannot open /path_to_vcmi/Mp3/CstleTown.mp3: Module format not recognized
если подкинуть mp3 с порта от loki - тоже самое. Хотя в общем-то звуки и кое-какая музыка в игре есть.

Какой-либо сильной оптимизацией еще не занимались, так что ИИ тормозить и вправду может - его писать начали сравнительно недавно.
Ну и конечно зависит от системы и карты. Можно пересобрать vcmi включив оптимизацию - это должно несколько ускорить игру.

Скорость героя можно поменять в настройках. Или это не помогает?

mp3 - подозреваю что или sdl mixer был скомпилен без поддержки mp3 или же в системе нет нужной библиотеки (кажется smpeg)
Звуки есть ибо они все в wav, а не mp3.

Ivan, вечер/день добрый!
Раз уж Вы курируете эту ветку… то подскажите по поводу новых версий (rev 2831).
Компилится без вопросов, но при старте:
Starting…
Creating console and logfile: 0 Initialization: 10
terminate called after throwing an instance of 'std::runtime_error’
what(): Resource with name ALL/CONFIG/FILESYSTEM and type TEXT wasn’t found.
Похоже надо обновить конфиг-пак?
Но где его взять, если это так.

Скопировать из папки с исходниками. (папка trunk/config/)