Welcome to U.A.C.
login / register
Status: Guest

РегистрацияРегистрация ВходВход
Архивы форума | iddqd.ru | wlf3d.ru
Light HTML | WAP 2.0 | i.wlf3d.ru
ПравилаПравила
Компиляция исходников ZDoom
   Список разделов - Doom и его порты - Компиляция исходников ZDoomОтветить
АвторСообщение
FalseMaster
Marine 1st class
Next rank: - UAC Gunner - after 8 points
72

Doom Rate: 5.54
Сообщение Отправлено: 05.05.10 00:40:38

Здравствуйте. Сразу извиняюсь, если создал топик не там, где следует - более подходящей ветки не нашёл. Теперь по делу. Не так давно вздумалось мне внести в ZDoom небольшие изменения. Скачал сорцы (v. 2.4.1 (r2125)) с сайта проекта, подкорректировал что требовалось, а вот с компиляцией возникла проблема. На сайте сказано, что необходим либо Visual C++ v. 8.0, либо GCC. Так как про GCC ничего хорошего не пишут, решил остановиться на MSVC. На трёх форумах для кодеров безуспешно просил бинарники - оказалось, что нынешние программисты не могут даже файлы переписать. Плюнул и две недели качал весь дистриб целиком. К моему разочарованию, выдранные бинарники работать наотрез отказались по причине DLL hell. Мочить manifest в CL.exe бестолку - запускается, но в runtime падает. Указанной в манифесте версии (8.0.50608.0) MSVCR80.dll (почему то отличной от версии самого CL.exe) в дистрибутиве не оказалось и в и-нете не нашёл . Короче, плюнул ещё раз и надёргал файлов из Visual C++ 7.0. Протестил. Консольный и гуёвый Hello World'ы собираются на ура. Но вот при попытке компиляции ZDoom'овых сорцов вылезла куча ошибок, причём даже синтаксических. Если кто хорошо петрит в сях (сам Delphi юзаю) и возился с ZDoom'ом, проконсультируйте пожалуйста.
Nil
= Colonel =
Next rank: - Commissar - after 32 points
2558

Doom Rate: 2.3
Сообщение Отправлено: 05.05.10 00:54:40

скачай бесплатный Microsoft Visual c++ express 2008 (2010) с сайта microsoft. Проект здума для 2005 студии.
1 2 1
StasBFG[iddqd]
-= DoomGod =-
Админ ФорумаАдмин сайта
2188

Doom Rate: 2.1
Сообщение Отправлено: 05.05.10 00:58:13

Тут как бы всё расписано при компиляции с нуля, у меня всё работает (хотя сам на си даже хеллоуворлд не умею писать).
1 2 1
FalseMaster
Marine 1st class
Next rank: - UAC Gunner - after 8 points
72

Doom Rate: 5.54
Сообщение Отправлено: 05.05.10 01:42:19

А в проге для скачки Microsoft Visual C++ 2008 Express Edition можно пофайлово выбирать или как? И вот ещё что. Я сейчас её (vcsetup.exe) качнул и это оказался самораспаковывающийся инсталлятор с кучей всякой требухи внутри. Он по ходу срачу мне на диске разведёт.
BeeWen [B0S]
- 1st Lieutenant -
Next rank: = 1st Lieutenant = after 40 points
1500

Doom Rate: 1.42
Сообщение Отправлено: 05.05.10 02:21:02

FalseMaster :
Указанной в манифесте версии (8.0.50608.0) MSVCR80.dll (почему то отличной от версии самого CL.exe) в дистрибутиве не оказалось и в и-нете не нашёл

FalseMaster
Когда то сохранял эти библиотеки впрок, глянь, мож пригодиться.
Ссылка
1
FalseMaster
Marine 1st class
Next rank: - UAC Gunner - after 8 points
72

Doom Rate: 5.54
Сообщение Отправлено: 05.05.10 03:27:36

BeeWen, спасибо конечно за попытку помочь, но в архиве MSVCR32.dll версии 8.00.50727.42, пробовал с ней - дохлый номер. Я встречался уже с таким явлением - скорее всего в процессе инсталляции бинарники патчатся. В общем с 2005-ой версией всё ясно, фтопку её. Так, я сейчас заменил компилер etc на версию 7.1, осталось 2 ошибки:

p_3dfloors.h(48) : error C3177: '' : can only specify underlying type for managed enum
i_main.cpp(895) : error C3861: '_get_pgmptr': identifier not found, even with argument-dependent lookup

В чём тут соль? Как это дело лечится?

Кстати, насчёт asm-файлов. Есть два подкаталога, содержащих оные: "asm_ia32" и "asm_x86_64". Я скомпилил из первого с выходным форматом "win32" - это правильно?
Nil
= Colonel =
Next rank: - Commissar - after 32 points
2558

Doom Rate: 2.3
Сообщение Отправлено: 05.05.10 07:27:25

FalseMaster? Лечится полным вычищением всего этого добра с ЖД и установкой заново. Если ты думаешь, что можно собрать компилятор по кусочкам, то ты неправ - в состав компилятора входят в том числе отладочные библиотеки(в том числе объектные, которые ты замаешся искать), не говоря уже о прочих нужных утилитах, которые сменили синтаксис входных аргументов.
http://www.microsoft.com/express/Downloads/
1 2 1
FalseMaster
Marine 1st class
Next rank: - UAC Gunner - after 8 points
72

Doom Rate: 5.54
Сообщение Отправлено: 06.05.10 02:11:13

Nil :
Лечится полным вычищением всего этого добра с ЖД и установкой заново.

Я не пользуюсь софтом, требующим установки, ибо по моему скромному мнению - это вредоносное ПО, засирающее винт, реестр и что самое главное, мой моск, ибо я почти полностью контролирую систему.
Nil :
Если ты думаешь, что можно собрать компилятор по кусочкам, то ты неправ ...

Я не думаю, а знаю. И давай не будем спорить на эту тему - я по горло сыт перепирательствами с нубьём на программерских форумах. Тем более ты всё равно не сможешь реально аргументировать такие категоричные заявления, а я смогу - т.е. если дальше прилюдно будешь выставлять меня дураком, я не поленюсь засунуть на файлообменник рабочую версию консольного компилятора из Delphi (изначально 1.5GB) вместе с заголовочниками (ессно без исходников) и примером программы общим весом не более 2MB и дать ссылку. Тебе это надо - самому выглядеть ламером? Так что, как говорил кот Леопольд, - "давайте жить дружно", лады? Отладочные lib'ы (с постфиксом "d") в release-сборке на хрен не нужны, и уж тем более не имеют никакого отношения к составу компилятора (CL.exe + C1.dll + C1xx.dll + C2.dll) - их использует линковщик (Link.exe), да и то при явном указании.
Насчёт "замучаешься искать", ты прав только касательно версий 8.0 (2005) и выше, а вот версии 7.1 (2003) хоть жопой ешь, а SDK у меня и так в наличии.
Nil :
не говоря уже о прочих нужных утилитах, которые сменили синтаксис входных аргументов

А вот здесь, хотелось бы поподробнее - что ещё за входные аргументы, каков их синтаксис, как и какими утилитами меняется. Если действительно хочешь помочь, дай ссылочку. Ещё весьма интересно было бы почитать о структуре vcproj-файлов, особенно о соответствии настроек компилера/линкера ключам командной строки. Ещё больше интересует структура конфигурационных файлов "CL.exe.config" и "Link.exe.config" - они у меня почти пустые, а это не есть gut.

P.S. Sorry за резкость, но просто задолбали уже бездоказательные высказывания о моей якобы неправоте и указки что да как мне делать.

P.P.S. С этим - "p_3dfloors.h(48) : error C3177: '' : can only specify underlying type for managed enum" уже разобрался (слава MSDN Smile ).
Nil
= Colonel =
Next rank: - Commissar - after 32 points
2558

Doom Rate: 2.3
Сообщение Отправлено: 06.05.10 07:05:05

FalseMaster
Поступая так, ты выглядишь ламером, потому-что нарушил лицсоглашение. Буду надеятся, что все твои произведения, программы и прочий труд народ будет использовать таким-же образом, а ты умрёшь от голода. А всё потому, что можно было-бы взять официально бесплатный Free Pascal и уже его ужимать абсолютно свободно. Насчёт изменений - изменились ключи, теперь некоторые из них не делают ничего и надо пользоватся другими ключами. Кроме того, я сталкивался с тем, что компилятор из Platform SDK не уживался с VS2008 - всегда писал ошибку нераспознанных аргументов.
И всё-таки VS надо устанавливать, иначе получишь неработоспособную среду, и отдельно кучку компиляторов. Не вижу в таком подходе ничего рационального, под VS2008(бесплатной) уже два года программирую и всем доволен.
И да, хватит разводить флейм. Не нравится как отвечают - иди в другое место.
1 2 1
c4tnt
= Sergeant =
Next rank: - Master Sergeant - after 42 points
458

Doom Rate: 2
Сообщение Отправлено: 06.05.10 23:55:23

FalseMaster

Касательно первого - может синтаксис не тот? Сам такие enum-ы не юзал, но везде пишут enum class : _anything_ вроде

Касательно второго - http://msdn.microsoft.com/en-us/library/24awhcba(VS.80).aspx

Общий рецепт - открыть файл и посмотреть, что написано в строке с ошибкой. Потом - гугль... Surprised
FalseMaster
Marine 1st class
Next rank: - UAC Gunner - after 8 points
72

Doom Rate: 5.54
Сообщение Отправлено: 07.05.10 01:56:26

Nil :
Поступая так, ты выглядишь ламером, потому-что нарушил лицсоглашение. ...

Ну зачем же так сурово. Я ведь не профессиональный программист - так для души пописываю иногда какую нибудь мелочёвку.
c4tnt :
Общий рецепт - открыть файл и посмотреть, что написано в строке с ошибкой. Потом - гугль

Да я и сам уже это понял, просто чё-то заторопился сначала. В общем с компилером, линкером и vcproj-файлом я вроде-как разобрался. Сижу компилю объектники помаленьку. Но думаю вопросы у меня ещё возникнут - уж очень проект запутанный. Буду надеяться, что тема не испарится, пока я копаюсь Smile
FalseMaster
Marine 1st class
Next rank: - UAC Gunner - after 8 points
72

Doom Rate: 5.54
Сообщение Отправлено: 12.05.10 01:02:00

Итак, вот что у меня получилось ... ну или не получилось. После долгих мучений всё скомпилилось и слинковалось без ошибок, правда с одним ворнингом. Но вот незадача - после запуска дело доходит только до инициализации дисплея, после чего прога вылетает с access violation (на мгновение окно всё же появляется). В чём проблема непонятно. У кого-нибудь такое было? Неужто исходники с багами? Мля, столько времени коту под хвост. Sad
Arsenikum
Chief Petty Officer
Next rank: - Warrant Officer - after 16 points
1054

Doom Rate: 1.62
Сообщение Отправлено: 12.05.10 01:16:29

У меня в Visual Studio все скомпилировалось без проблем, компилил правда 2.2.0. Может, ты в исходниках пару звездочек Mad добавил, чтоб ошибки пофиксить. Может быть, ты в файлы настроек линка залез и подковырнул там кое-чего.
О чем ворнинг, кстати?
2 1
FalseMaster
Marine 1st class
Next rank: - UAC Gunner - after 8 points
72

Doom Rate: 5.54
Сообщение Отправлено: 12.05.10 01:51:14

Ворнинг вот такой:
autostart.obj : warning LNK4229: invalid directive '/manifestdependency:type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' processorArchitecture='x86' publicKeyToken='6595b64144ccf1df' language='*'' encountered; ignored
видимо линкер из 7.1 такое не ест. Но я не думаю, что в этом дело, ведь диалоги то появляются.

Ключи линкера и компилятора я два раза перепроверял - всё как и в файле проекта. А если б я что-нибудь закаментил, то ошибки бы полезли.
entryway
-= DoomGod =-
3010

Doom Rate: 2.45
Сообщение Отправлено: 12.05.10 12:54:06

FalseMaster :
После долгих мучений всё скомпилилось и слинковалось без ошибок, правда с одним ворнингом. Но вот незадача - после запуска дело доходит только до инициализации дисплея, после чего прога вылетает с access violation

У меня такое было неоднократно. Помогал незначительный фикс кода инициализации видеорежима. Конкретней уже не скажу, не помню (что-то связанное с двойной инициализацией). Мне кажется пробема ушла после обновления дров на видео, хотя не уверен, что именно из-за этого.
3 1 1
FalseMaster
Marine 1st class
Next rank: - UAC Gunner - after 8 points
72

Doom Rate: 5.54
Сообщение Отправлено: 14.05.10 05:14:34

entryway :
У меня такое было неоднократно. Помогал незначительный фикс кода инициализации видеорежима. Конкретней уже не скажу, не помню (что-то связанное с двойной инициализацией).

Ах как жаль, как жаль. А я так ждал, надеялся и верил ... Значит всё-таки я угадал - сорцы немного левые, ведь оригинальный то exe'шник нормально работает и соответственно дрова здесь ни причём. Эх ну да ладно, как говорится, - "Если гора не идёт к Магомеду, ну её на х...". Мне если честно, изменения то в коде нужны микроскопические (хотя изначально идей было больше, да видно не судьба). Именно, нужно fps поубавить, а то у меня температура проца (68 - 72 °C) превышает ту, которая в спецификации указана (68 °C). Не могу я сейчас компом рисковать (кризис), если камень зажарю, можно смело в петлю лезть. У меня ZDoom выдаёт 81 - 92 fps и при этом t проца превышает специфицируемую на 0 - 4 °C. Если применять "cl_capfps" (35 fps), то t в пределах 59 °C, но в этом случае картинка меняется не плавно, а как-бы рывками (хоть и мелкими, но всё равно раздражает). vid_vsync - не вариант, ибо с ним вообще подтормаживать начинает. Я вот прикинул, что если б fps был 50 - 60, то в этом случае у меня и t проца была бы в норме и не дёргалось бы ничего. В общем я задумал следующее: изменить интервал рендеринга при "cl_capfps" и нашёл в модуле "r_main.cpp" нужный, как мне казалось участок кода:

r_TicFrac = I_GetTimeFrac (&r_FrameTime);
if (cl_capfps || r_NoInterpolate)
{
   r_TicFrac = FRACUNIT;
}
т.е. я думал, что "r_TicFrac" - это тот самый интервал и если вместо "FRACUNIT" (65536) присвоить ему подобранное методом научного тыка значение, то всё будет в ажуре. После фиаско с перекомпиляцией я, как призывал вождь мирового пролетариата, пошёл другим путём , а конкретно - патчил ZDoom.exe hex-редактором, ковыряясь в asm-листинге. Разочарованию моему не было предела, когда оказалось, что варьирование значения "r_TicFrac" не приводит ни к каким изменениям в поведении программы.

Ну, довольно лирики . Entryway, я так понял, ты в потрохах ZDoom'овских немало копался. Не подскажешь хотя бы ориентировочно, где искать код, отвечающий за fps. К остальным прочитавшим, обладающим инфой по теме аналогичная просьба. А то я чё-то уже так замучался со всем этим делом, что сил никаких нет.
Arsenikum
Chief Petty Officer
Next rank: - Warrant Officer - after 16 points
1054

Doom Rate: 1.62
Сообщение Отправлено: 14.05.10 10:02:46

Кроме fps на работу проца влияет куча других параметров, начиная от настроек графики (сколько и чего рисовать), кончая уровнем Дума, т.е. картой, на которой ты играешь (поведение скольких монстров обрабатывать, сколько скриптов обсчитывать и т.п.).

И вообще, что ты привязался в Zdoom? Есть и другие, менее прожорливые порты. Например, PrBoom с настройками по минимуму или вообще Vanilia.
2 1
FalseMaster
Marine 1st class
Next rank: - UAC Gunner - after 8 points
72

Doom Rate: 5.54
Сообщение Отправлено: 15.05.10 00:31:10

entryway :
В TryRunTics в самом начале.

По ходу оно самое, может поколдую как-нибудь, но уже нашёл более радикальное решение - сбавил частоту проца в BIOS (всё гениальное просто ). fps от 51 до 76, а температура не поднимается выше 56 °C - то, что доктор прописал. Буду теперь усиленно отрываться после долгого воздержания. Но по любому спасибо всем и entryway в частности за посильную помощь.
Страница 1 из 1
   Список разделов - Doom и его порты - Компиляция исходников ZDoom

Раздача наград