Elite Games - Свобода среди звезд!
.
ВНИМАНИЕ!
Наша конференция посвящена космической тематике и компьютерным играм.
Политические вопросы и происходящие в мире события в данный момент на нашем сайте не обсуждаются!

  » Компиляция | страница 1
Конференция предназначена для общения пилотов. Для удобства она разделена на каналы, каждый из которых посвящен определенной игре. Пожалуйста, открывайте темы только в соответствующих каналах и после того, как убедитесь, что данный вопрос не обсуждался ранее.

Поиск | Правила конференции | Фотоальбом | Регистрация | Список пилотов | Профиль | Войти и проверить личные сообщения | Вход

   Страница 1 из 1
 
Поиск в этой теме:
Канал Elite » Канал проекта Elite 3 под Direct 3D: «Компиляция»
LG.BALUKATION
 88 EGP


Репутация: 27
Сообщения: 179
Откуда: Saint-Petersburg
Зарегистрирован: 26.02.2006
Помнится, кто-то спрашивал как это чудо скомпилить... А и впрямь оказалось есть подводные камни.
Лично у меня есть лишь восьмая "студия", и то болванил когда-то на всякий, видимо случай и настал.
Первая проблема заключается в том, что нужен NASM (а ему кстати нужны пути к сырцам без пробелов, так что смотрим куда сырцы кладём Подмигиваю. Ну, это не проблема - сливаем с сырцфоржнета последнюю версию под винды, переименовываем nasmw.exe в nasm.exe. Лично я просто добавил каталог с nasm'ом в переменную path, хотя есть шанс что хватит просто в студии добавить к путям запускаемых файлов.
Потом надо ещё DirectX SDK. Само это чудо весит много и что из себя представляет даже не знаю. А вот либы и инклуды от него весят всего три метра - я у знакомого и стянул. Это добро прописывается в пути студии.

Потом открываем проект - студия хочет его конвертировать в новый формат. После конфертации, проект как бы открылся.
Наивно жмём F7 (build), но ничего не собирается. Для начала высматриваем самое явное - например в файлах иногда просто забыто обявление переменной, т. е. вместо "int i" идёт только "i". Чтож, фиксим сами Улыбка

Но есть вещи, которые пофиксить не так просто :-?
Код:
\win\object3d\object3d.cpp(34) : error C4430: missing type specifier - int assumed. Note: C++ does not support default-int

Но строка 34 - это открывающаяся фигурная скобка:
Код:
//--------------------------------------------------------------------------------------------
// Имя:       Create()
// Описание: Создание объекта из файла
//--------------------------------------------------------------------------------------------
Object3D::Create(char *filename)
{ /* это строка 34 */

Исходники каждый день по SVN обновляю, но скомпилить решился только сегодня, т. к. не было DX инклудов и библиотек. Товарищи, у которых получилось это скомпилить, скажите что я сделал не так или что я ещё не сделал?
_________________
Zwei Drachen betrachten einander
    Добавлено: 03:14 18-07-2006   
DreamZzz
 430 EGP


Рейтинг канала: 7(580)
Репутация: 90
Сообщения: 642
Откуда: Мурманск
Зарегистрирован: 15.04.2006
LG.BALUKATION :
вместо "int i" идёт только "i"

Эт ты где такое нашел?

Я добавлял полностью настроенный проектный файл для VC6, Andis добавил проектный файл для VC7. Что там восьмой творит не знаю, так что тут к сожалению помочь не смогу.
_________________
Космос лучше всего исследован научными фантастами
    Добавлено: 03:48 18-07-2006   
LG.BALUKATION
 88 EGP


Репутация: 27
Сообщения: 179
Откуда: Saint-Petersburg
Зарегистрирован: 26.02.2006
Еслиб только я - у знакомого таже фигня и об этом я узнал сначала от него, а потм уж и сам нарвался.
Напрмер файл MD2Model.cpp строчка 96
Код:
for( i = 0; i < modelheader.num_tris; i++ )

Причём это в копии, не тронутой студией Расстройство

Добавлено:
Специально слазал глянуть сырцы по SVN через вэб - там тоже самое :-?
_________________
Zwei Drachen betrachten einander
    Добавлено: 04:18 18-07-2006   
DreamZzz
 430 EGP


Рейтинг канала: 7(580)
Репутация: 90
Сообщения: 642
Откуда: Мурманск
Зарегистрирован: 15.04.2006
А, это старый прикол VC6

Если мы сделаем
for( int i = 0;...
то потом
for( int i = 0;...
уже не покатит, так как i уже считается объявленной.
зря я конечно так, надо было учесть, что не только VC6 будут компилить, надо было сразу объявление i выносить.
_________________
Космос лучше всего исследован научными фантастами
    Добавлено: 06:05 18-07-2006   
Andis
 100 EGP


Репутация: 27
Сообщения: 85
Откуда: Зеленоград
Зарегистрирован: 25.07.2003
int Object3D::Create(char *filename)
{ /* это строка 34 */

это должно помочь, я компилил и под 8 и под 7 студию. 6 увы нету.
Но я на днях обновлю код там этого уже не будет, слегка подпеределал.
А вообще если возникнут вопросы стучи в асю.
    Добавлено: 08:28 18-07-2006   
LG.BALUKATION
 88 EGP


Репутация: 27
Сообщения: 179
Откуда: Saint-Petersburg
Зарегистрирован: 26.02.2006
Спасибо, помогло!

Нда, и впрямь какая-то странная студия получается - нас учили что если переменная обьявляется в заголовке цикла, она существует только в цикле... Хотя мне так в своё время и не удалось её найти, а 7 (2003) отпугнула своей здоровой стопкой дисков - вот и остановился на 8 (одна DVD-R Улыбка

ИМХХО уж лучше в форуме - ведь если каждый захочет скомпилить и постучит в асю...
_________________
Zwei Drachen betrachten einander
    Добавлено: 19:19 18-07-2006   
Andis
 100 EGP


Репутация: 27
Сообщения: 85
Откуда: Зеленоград
Зарегистрирован: 25.07.2003
LG.BALUKATION :
ИМХХО уж лучше в форуме - ведь если каждый захочет скомпилить и постучит в асю...

конечно лучше, просто у меня днем нет доступа к web ресурсам, зато аська работает. а в онлайне я практически всегда когда нет проблем с инетом
    Добавлено: 19:37 18-07-2006   
LG.BALUKATION
 88 EGP


Репутация: 27
Сообщения: 179
Откуда: Saint-Petersburg
Зарегистрирован: 26.02.2006
Былоб ещё интересно узнать о структуре каталога исходников.
Просто есть некие "branches" и "tags", в котопых нет никаких файлов кроме .svn (как я понял это системная директория, она есть в каждом каталоге и отвечает за синхронизацию с сырцами в инете).
А ещё есть каталог "trunk", в котором собстно и лежит всё самое интересное.

/branches - "ветви" (на ум приходят только ветви FreeBSD - тут тоже так?)
/tags - "тэги" (?)
/trunk - само дерево исходников
/trunk/build - сюда собирается рабочая копия
/trunk/build/MODELS - внешние модели (в подкатагогах по номерам)
/trunk/build/textures - внешние текстуры (тож с какими-то номерами)
/trunk/doc - документация и какие-то исходники (видимо примеры и утилиты)
/trunk/win - часть кода, специфичная для виндовой версии движка (наследие jjffe)
/trunk/win32 - лично у меня пусто (предположение почему см. ниже)
/trunk/win32db - сюда студия сваливает всякий хлам при компиляции. Как я пнимаю прошлый каталгн для старой версии, этот для 7 и выше. Вот только есть-ли смысл держать эт временные каталги в репозитарии?

Вообще былоб интересно почитать по-русски о внутреннем устройстве jjffe и самих Элит.

Кстати, рам уже есть перевод статьи о структуре обьектов - может замените им англицкую версию в /thunk/doc или просто приложите?
_________________
Zwei Drachen betrachten einander
    Добавлено: 01:31 19-07-2006   
DreamZzz
 430 EGP


Рейтинг канала: 7(580)
Репутация: 90
Сообщения: 642
Откуда: Мурманск
Зарегистрирован: 15.04.2006
Была использована рекомендованная структура каталогов SVN.

/branches - ветви проекта.
/tags - без понятия.

/trunk/win32 - объектные файлы релизной конфигурации проекта.
/trunk/win32db - объектные файлы дебажной конфигурации проекта.

Чтоб почитать по русски, надо переводить. А потом еще и дополнять, так как постоянно появляется новая информация.

Перевод статьи об объектах не полный, так что пока выкладывать статью в репозиторий смысла не вижу.

Сдалал отдельную тему для вопросов по структуре данных FFE.
_________________
Космос лучше всего исследован научными фантастами
    Добавлено: 01:42 19-07-2006   
RedLord
 





Здравствуйте ! подскажите что делать (я не програмист) пытаюсь скомпилировать 63svn скачал ,поставил ВС6 ,подключил библиотеки директа ,насм пробую компилить выдает такие ошибки
пара таких -
\trunk\win\gfx.cpp(1986) : error C2374: 'i' : redefinition; multiple initialization
\trunk\win\gfx.cpp(1950) : see declaration of 'i'
( ... for(int i=0;i<ucount;i++) { ...)

такие -
trunk\win\md2\md2model.cpp(227) : error C2664: 'Lock' : cannot convert parameter 3 from 'unsigned char ** ' to 'void ** '
Types pointed to are unrelated; conversion requires reinterpret_cast, C-style cast or function-style cast
(...if(FAILED(d3d_vb->Lock(sizeof(CUSTOMVERTEX)*200000,sizeof(CUSTOMVERTEX)*GetTriangleCount()*3,(BYTE**)&Vertices,0))) return 0; ...)

и остальное
w32sound.cpp
\trunk\win\w32sound.cpp(136) : error C2065: 'sprintf_s' : undeclared identifier
\trunk\win\w32sound.cpp(281) : error C2065: 'strcat_s' : undeclared identifier
w32video.cpp
\trunk\win\w32video.cpp(497) : error C2065: 'sprintf_s' : undeclared identifier
\trunk\win\w32video.cpp(505) : error C2374: 'i' : redefinition; multiple initialization
\trunk\win\w32video.cpp(496) : see declaration of 'i'

Если нетрудно помогите хочется очень скомпилить и посмотреть Улыбка
    Добавлено: 13:23 07-06-2008   
Rouniy
 





как можно присоедениться к разработке и где взять исходники ?
    Добавлено: 03:09 01-08-2008   
LG.BALUKATION
 88 EGP


Репутация: 27
Сообщения: 179
Откуда: Saint-Petersburg
Зарегистрирован: 26.02.2006
RedLord, про остальное не знаю, но первая проблема напомнила то, из-за чего я и создавал эту тему. Попробуйте другую версию Visual C++.

Rouniy, сам я за проектом уже давно не слежу, но когда-то брал исходники отсюда https://opensvn.csie.org/FFED3D/(SubVersioN). Судя по тамошней статистике, проект обновлялся последний раз пару месяцев назат. Из инструментов когда-то надо было Visual C++ 6 или новее (я собирал в 2005), DirectX SDK и NASM под винду.
_________________
Zwei Drachen betrachten einander
    Добавлено: 03:49 03-08-2008   
Crimson
 560 EGP


Рейтинг канала: 1(3)
Репутация: 130
Сообщения: 3041

Зарегистрирован: 03.09.2003
В шестой (и по-моему седьмой) студии был баг. Переменная, объявленная как for(int i ...), по спецификации C++ считается объявленной внутри блока цикла. В шестерке она считается объявленной вне цикла. Соответственно, два цикла подряд, объявляющие i, вызовут ошибку "повторное объявление" в MSVS6 (хотя по спецификации все как раз правильно). MSVS8 (она же MSVS2005) компилирует согласно спецификации, благодаря чему ломается код, написанный под MSVS6.

Судя по ошибкам у RedLord, текущую версию нужно собирать таки уже в MSVS2005.

Последний раз редактировалось: Crimson (11:07 08-08-2008), всего редактировалось 1 раз
    Добавлено: 11:03 08-08-2008   
LG.BALUKATION
 88 EGP


Репутация: 27
Сообщения: 179
Откуда: Saint-Petersburg
Зарегистрирован: 26.02.2006
ИМХО это не багбыл, а просто старая версия стандарта. В седьмой (AKA .net AKA 2003) этого уже не было.

Кстати попробовал на работе собирать - поставил VS2005, DX SDK от этого лета, NASM последний... Так оно не находит заголовки DirectMusic - причём я их в инклудах DXSDK тоже не нашёл :-? Я что-то не то скачал с мелкомягких, или терь музыку тож выкинули из DirectX. Подскажите пожалста, с каким SDK оно точно собирается.
_________________
Zwei Drachen betrachten einander
    Добавлено: 12:56 10-08-2008   
Crimson
 560 EGP


Рейтинг канала: 1(3)
Репутация: 130
Сообщения: 3041

Зарегистрирован: 03.09.2003
http://msdn.microsoft.com/en-us/directx/aa937789.aspx :
The DirectX SDK no longer contains the following components:

* Direct3D8 and all of the earlier versions
* Direct3D RM
* DirectAnimation
* DirectMusic
* DirectInput7 and all of the earlier versions
* DirectPlay
* DirectPlayVoice
* DirectX8-era HRESULT conversion routines
* Managed DirectX samples and documentation

Developers wanting to use these components will need to download the August 2007 DirectX SDK, available from MSDN.
The REDIST and Web DXSetup have not been not be affected by these removals.
    Добавлено: 08:44 11-08-2008   
Канал Elite -> Канал проекта Elite 3 под Direct 3D: «Компиляция»
 
  
Показать: 
Предыдущая тема | Следующая тема |
К списку каналов | Наверх страницы
Цитата не в тему: Подходи тихо, стреляй точно, улетай быстро.

  » Компиляция | страница 1
Каналы: Новости | Elite | Elite: Dangerous | Freelancer | Star Citizen | X-Tension/X-BTF | X2: The Threat | X3: Reunion | X3: Terran Conflict | X Rebirth | X4: Foundations | EVE Online | Orbiter | Kerbal Space Program | Evochron | VoidExpanse | Космические Миры | Онлайновые игры | Другие игры | Цифровая дистрибуция | play.elite-games.ru | ЗВ 2: Гражданская война | Творчество | Железо | Игра Мечты | Сайт
   Дизайн Elite Games V5 beta.18