Привет!
Долго заставлял сие чудо компилиться под slackware... свершилось.
Запускается нормально, но при попытке запустить кампанию - виснит наглухо (после выбора бонуса и нажатия конопки \"begin\").
То есть не вываливается, ошибок нет, просто висит, пока не кильнешь).
Проявляется на одиночном сценарии. В кампании же вываливается с: \"vcmiclient: CLodHandler.cpp:26: std::string readString(const ui8*, int&): Assertion `len >= 0 && len <= 500000\' failed.\"
Использую исходники с trunk.
Так же (не помню когда) ругается на отсутствие NEUTRAL.H3C
Что может быть?
Age: 21 Joined: 08 May 2009 Posts: 713 Location: Ukraine
Posted: 2012-08-03, 18:45
Quote:
Долго заставлял сие чудо компилиться под slackware...
Чего так долго? Вроде как привели в порядок ридми или что-то все еще не так?
Кампании еще недоделаны, багов там больше некуда - лучше сценарии запускать пока что.
Но падать при старте ни одни ни вторые не должны.
Что не так - не уверен. Возможно в процессах остался зависший сервер - в этом случае нужно убить vcmiserver и только потом запускать клиент (vcmiclient который)
Если в сценариях все равно зависает:
- проверить есть ли в процессах vcmiserver (должен запуститься вместе со стартом сценария)
- если есть возможность, то подключиться с gdb и снять стек с клиента и сервера:
Code:
$ 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, исправлю
Illya Guest
Posted: 2012-08-04, 19:10
Долго, в основном из за того что моя система давно не видела апгрейда.
И либы старые, и компилятор и coreutils. Сначала конфигуратор никак не хотетл видеть libSDL и boost, потом вылетал при начале компиляции.. но это такое, старая система, работает на машине уже лет 6 или 7... последний апгрейд года 2 назад был, так что простительно ;)
Сейчас все компилится без проблем, за исключением ворнингов. И есть еще один момент.
Вроде как при сборке 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 мне был без надобности так что в системе его нет.
Если свет не прольется, буду ставить.
Может буст выделывается?
Age: 21 Joined: 08 May 2009 Posts: 713 Location: Ukraine
Posted: 2012-08-04, 20:36
Свопинг при компиляции ERM - возможно. Уж слишком активно там используется всякая магия буста. Наверно стоит как-нибудь сделать его компиляцию опциональной - в игре это пока нигде не используется.
А падает похоже и вправду буст.
Ругается на boost::interprocess. Гуглением нашел такую же ошибку:
http://www.slackwiki.com/...ling_the_Driver
Стоит попробовать /etc/fstab поправить.
Illya Guest
Posted: 2012-08-05, 10:51
Ivan благодарю!
Включил tmpfs в fstab. Клиент и сервер стартуют, все работает..
Да.. еще на счет свопинга в ERM - если конфигурить через cmake а потом собирать - то в трэшинг машина не уходит.
Illya Guest
Posted: 2012-08-05, 18:11
Ivan, а оно должно тормозить?
Герои передвигаются мучительно медленно, а ждать пока походит комп можно почти минуту (если много противников).
При этом загрузка проца всего процентов на 15.
И вот это постоянно:
Warning: Cannot open /path_to_vcmi/Mp3/CstleTown.mp3: Module format not recognized
если подкинуть mp3 с порта от loki - тоже самое. Хотя в общем-то звуки и кое-какая музыка в игре есть.
Age: 21 Joined: 08 May 2009 Posts: 713 Location: Ukraine
Posted: 2012-08-05, 19:10
Какой-либо сильной оптимизацией еще не занимались, так что ИИ тормозить и вправду может - его писать начали сравнительно недавно.
Ну и конечно зависит от системы и карты. Можно пересобрать vcmi включив оптимизацию - это должно несколько ускорить игру.
Скорость героя можно поменять в настройках. Или это не помогает?
mp3 - подозреваю что или sdl mixer был скомпилен без поддержки mp3 или же в системе нет нужной библиотеки (кажется smpeg)
Звуки есть ибо они все в wav, а не mp3.
Illya Guest
Posted: 2012-08-14, 20:53
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.
Похоже надо обновить конфиг-пак?
Но где его взять, если это так.
Age: 21 Joined: 08 May 2009 Posts: 713 Location: Ukraine
Posted: 2012-08-16, 21:00
Скопировать из папки с исходниками. (папка trunk/config/)
andyc Guest
Posted: 2012-10-08, 10:20
Добрый день Иван!
Подскажите пожалуйста, какой переменной cmake, определить собственный rpath?
CMAKE_INSTALL_RPATH="%_libdir/%name/" почему-то не работает.
Age: 21 Joined: 08 May 2009 Posts: 713 Location: Ukraine
Posted: 2012-10-08, 14:49
Хмм... Должно работать. В доках cmake пишут что rpath применяется только после установки (make install и тому подобные).
Проверю, если что не так - исправлю.
Ну а как вариант - поправить флаги:
cmake -DCMAKE_CXX_FLAGS="-rpath,/path/to/lib"
andyc Guest
Posted: 2012-10-08, 15:44
Ivan wrote:
Хмм... Должно работать. В доках cmake пишут что rpath применяется только после установки (make install и тому подобные).
Проверю, если что не так - исправлю.
Ну а как вариант - поправить флаги:
cmake -DCMAKE_CXX_FLAGS="-rpath,/path/to/lib"
Спасибо, однако не помогло добавить опцию в cmake. При elf проверке в
альте, выводит следующее
Age: 21 Joined: 08 May 2009 Posts: 713 Location: Ukraine
Posted: 2012-10-08, 16:00
А после установки? В самом rpm или уже установленные в систему?
CMake ссылки на папки правит в момент установки - бинарники, которые валяются в папке сборки будут указывать на эту самую папку - замена на пути вида /usr/lib/vcmi делается позже.
UPD:
Проверил. CMAKE_INSTALL_RPATH не используется, но выставлен правильно:
до установки: ~/src/vcmi/build/lib
после: /usr/lib/vcmi
Посмотрю что с первым сделать можно.
andyc Guest
Posted: 2012-10-08, 16:55
Ivan wrote:
А после установки? В самом rpm или уже установленные в систему?
CMake ссылки на папки правит в момент установки - бинарники, которые валяются в папке сборки будут указывать на эту самую папку - замена на пути вида /usr/lib/vcmi делается позже.
UPD:
Проверил. CMAKE_INSTALL_RPATH не используется, но выставлен правильно:
до установки: ~/src/vcmi/build/lib
после: /usr/lib/vcmi
Посмотрю что с первым сделать можно.
Большое спасибо. Сборка производится под Altlinux. Кстати, если собирать vcmi
с дополнительными переменными:
Ах да, совершенно забыл, собираю вчерашний svn - 2983
p.S: на -march=pentium4, не обращайте внимания, в сборочной
среде, подставляется правильный тип процессора.
Age: 21 Joined: 08 May 2009 Posts: 713 Location: Ukraine
Posted: 2012-10-08, 17:12
Проблема с libERM - там куча шаблонной магии в итоге gcc может падает от нехватки памяти.
Как вариант - отключить компиляцию этой либы:
cmake -DDISABLE_ERM=true
Сейчас она не используется, так что проблем не будет.
You can post new topics in this forum You can reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum You cannot attach files in this forum You can download files in this forum