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

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

Search | Conference rules | Album | Register | Pilots list | Profile | Log in to check your private messages | Log in

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


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

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

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

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

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


Рейтинг канала: 7(580)
: 90
Posts: 642
Location: Мурманск
Joined: 15 Apr 2006
LG.BALUKATION wrote:
вместо "int i" идёт только "i"

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

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


: 27
Posts: 179
Location: Saint-Petersburg
Joined: 26 Feb 2006
Еслиб только я - у знакомого таже фигня и об этом я узнал сначала от него, а потм уж и сам нарвался.
Напрмер файл MD2Model.cpp строчка 96
Code:
for( i = 0; i < modelheader.num_tris; i++ )

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

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


Рейтинг канала: 7(580)
: 90
Posts: 642
Location: Мурманск
Joined: 15 Apr 2006
А, это старый прикол VC6

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


: 27
Posts: 85
Location: Зеленоград
Joined: 25 Jul 2003
int Object3D::Create(char *filename)
{ /* это строка 34 */

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


: 27
Posts: 179
Location: Saint-Petersburg
Joined: 26 Feb 2006
Спасибо, помогло!

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

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


: 27
Posts: 85
Location: Зеленоград
Joined: 25 Jul 2003
LG.BALUKATION wrote:
ИМХХО уж лучше в форуме - ведь если каждый захочет скомпилить и постучит в асю...

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


: 27
Posts: 179
Location: Saint-Petersburg
Joined: 26 Feb 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
    Posted: 01:31 19-07-2006   
DreamZzz
 430 EGP


Рейтинг канала: 7(580)
: 90
Posts: 642
Location: Мурманск
Joined: 15 Apr 2006
Была использована рекомендованная структура каталогов SVN.

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

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

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

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

Сдалал отдельную тему для вопросов по структуре данных FFE.
_________________
Космос лучше всего исследован научными фантастами
    Posted: 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'

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





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


: 27
Posts: 179
Location: Saint-Petersburg
Joined: 26 Feb 2006
RedLord, про остальное не знаю, но первая проблема напомнила то, из-за чего я и создавал эту тему. Попробуйте другую версию Visual C++.

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


Рейтинг канала: 1(3)
: 130
Posts: 3041

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

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

Last edited by Crimson on 11:07 08-08-2008; edited 1 time in total
    Posted: 11:03 08-08-2008   
LG.BALUKATION
 88 EGP


: 27
Posts: 179
Location: Saint-Petersburg
Joined: 26 Feb 2006
ИМХО это не багбыл, а просто старая версия стандарта. В седьмой (AKA .net AKA 2003) этого уже не было.

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


Рейтинг канала: 1(3)
: 130
Posts: 3041

Joined: 03 Sep 2003
http://msdn.microsoft.com/en-us/directx/aa937789.aspx wrote:
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.
    Posted: 08:44 11-08-2008   
Канал Elite -> Канал проекта Elite 3 под Direct 3D: «Компиляция»
 
  
Display posts from previous: 
View previous topic | View next topic |
К списку каналов | Наверх страницы
Цитата не в тему: Парень, у тебя что, шершень в трюме заиграл?

  » Компиляция |
Каналы: Новости | 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