1. Esports World Cup 2025 13:00 | Шахматные звезды 5.0 | Дубов - Ниманн
    Тур чемпионов. Финал top!! | ЧМ рапид + блиц 25 top!!
    Последний довод короля Книга - NEW!
    Очень СКОРО переезжаем. Оставайтесь с нами!

Как скомпилировать движок?

Discussion in 'Машинное отделение' started by Алексей Н., 9 Sep 2008.

  1. Алексей Н.
    Оффлайн

    Алексей Н. Алексей

    Репутация:
    0
    Вопрос к специалистам: что мне нужно сделать, чтобы самому скомпилировать движок (Стрелку) по имеющимся исходникам? Какой компилятор лучше использовать и где его можно взять? Какие действия надо совершить? Если об этом можно почитать в сети, то где? (компиляция нужна под Windows). Заранее спасибо.
     
  2. thenewone
    Оффлайн

    thenewone Евгений Манев

    Репутация:
    1
    У меня такие же проблемы. Я совсем новичок в этом деле. Хочется скомпилировать Крафти Новус, версию Роберта Джурджевича. Скачал Visual, но совсем не могу управиться. Дайте хотя бы hint где искать.
     
  3. WildCat
    Оффлайн

    WildCat Коршунов Игорь Staff Member

    Репутация:
    0
    Алексей Н.
    В исходниках стрелки есть проект для Visual C++ 6.0. В других версиях придется проект делать самому.

    thenewone
    Вот что я припоминаю.
    В проект надо добавить crafty.c и сишные файлы которые в нем не подключаются, а также egtb.cpp.
    И еще я вроде, чтобы избежать всяких проблем, переименовывал все *.c в *.cpp.
     
  4. дуп
    Оффлайн

    дуп Учаcтник

    Репутация:
    0
    Если вас интересует только Стрелка, то действительно, ищите 6-ю студию. В более поздних скомпилить будет не очень просто. Компилятор вывалит вам кучу ошибок, думаю, не одну сотню. Придется разбираться, бессмысленная трата времени и нервов.
     
  5. WildCat
    Оффлайн

    WildCat Коршунов Игорь Staff Member

    Репутация:
    0
    У меня Стрелка без проблем компилируется и в восьмой студией.
     
  6. дуп
    Оффлайн

    дуп Учаcтник

    Репутация:
    0
    В нетронутом виде? Создаете проект, копируете туда файлы, нажали F7 и все получится? Я вот сейчас специально попробовал, у меня получилось 619 ошибок :(
     
  7. WildCat
    Оффлайн

    WildCat Коршунов Игорь Staff Member

    Репутация:
    0
    Нужно не все файлы добавлять.
     
  8. дуп
    Оффлайн

    дуп Учаcтник

    Репутация:
    0
    У меня их всего 11. Вряд ли там лишние есть :/
     
  9. WildCat
    Оффлайн

    WildCat Коршунов Игорь Staff Member

    Репутация:
    0
    Лишних нет, но в проект добавлять все не надо.
     
  10. дуп
    Оффлайн

    дуп Учаcтник

    Репутация:
    0
    В данетки хотите поиграть? :)
     
  11. ChessTerminator75
    Оффлайн

    ChessTerminator75 Андрей

    Репутация:
    0
    Со Стрелкой явно что-то не то.
    Честно говоря особо не пытался но с первого раза завести не удалось.

    А Крафти вообще на Си написан и это надо учитывать.

    Лучше всего компилируется Fruit.
    У меня с ним никогда вопросов не было.
    Просто идеальный движок и по коду и по сборке!

    Ну еще можно Micro-Max в пример привести :)

    Кстати если раньше с Грекой были проблемы то сейчас
    компилируется на ура.
     
  12. WildCat
    Оффлайн

    WildCat Коршунов Игорь Staff Member

    Репутация:
    0
    В Strelka.c есть такой код:
    Code:
    #include "trans.c"
    #include "board.c"
    #include "search.c"
    #include "eval.c"
    #include "genmov.c"
    #include "utils.c"
    #include "emater.c"
    Поэтому эти файлы нельзы подключать к проекту.
    Как легко заметить остается только подключить strelka.c, consts.c, parse.c - и можно компилировать. :)
     
  13. WinPooh
    Оффлайн

    WinPooh В.М. Staff Member

    Репутация:
    95
    Ага, видимо после того, как файл unix.cpp был защищён инструкциями препроцессора от компиляции под MSVC :)
     
  14. Алексей Н.
    Оффлайн

    Алексей Н. Алексей

    Репутация:
    0
    Спасибо за помощь. Скачал Visual C++ 6.0, распаковал, только не понял как его инстолировать. При распаковке возникает 8 папок, в каждой есть зкзешные файлы. Мне что, в папку "Setup" идти?
     
  15. Vladimirovich
    Оффлайн

    Vladimirovich Консультант

    Репутация:
    31
    Зачем проект самому делать если он уже для 6.0 есть? Так VS2003 dsw и dspшники отлично понимает.
     
  16. WinPooh
    Оффлайн

    WinPooh В.М. Staff Member

    Репутация:
    95
    А старшие версии студии, по идее, должны уметь конвертировать проекты от младших.
     
  17. Vladimirovich
    Оффлайн

    Vladimirovich Консультант

    Репутация:
    31
    Всяко.
    А если вылезут ошибки, то они не в студии, а в генах :lol:
     
  18. WinPooh
    Оффлайн

    WinPooh В.М. Staff Member

    Репутация:
    95
    В 6-й студии тоже ошибки были, в том числе в компиляторе и библиотеках.
     
  19. Vladimirovich
    Оффлайн

    Vladimirovich Консультант

    Репутация:
    31
    Я пошутил.
    Насчет VS6 надо бы SP не раньше 4-того. А VS2003 и особенно VS2005 критичнее к кривизне кода.
     
  20. WildCat
    Оффлайн

    WildCat Коршунов Игорь Staff Member

    Репутация:
    0
    Они и умеют, только очень конвертер глючит. Так что лучше от конвертирования совсем отказаться.
     
  21. thenewone
    Оффлайн

    thenewone Евгений Манев

    Репутация:
    1
    Про Crafty и Visual 2008.
    Извиняюсь, если досаден.
    Дело в том, что я начинаю спотыкаться еще с пуском программы.
    Там надо New Project сделать. Какой? Win32 или Console? Потом /файлы .c в .cpp я уже переименовал/ : какие файлы надо выбрать для компиллирования? Где это узнать? К тому же в Visual 2008 "Compile" нет, кажется, есть только "Build", полагаю это одно и то же.
    У Crafty есть Makefile. Можно ли его использовать? Как? :)
    Спасибо.

    PS: Под Linux все было намного легче :)
     
  22. WildCat
    Оффлайн

    WildCat Коршунов Игорь Staff Member

    Репутация:
    0
    Нужно заглянуть в crafty.c и удалить из проекта все файлы, которые там перечислены.
     
  23. Алексей Н.
    Оффлайн

    Алексей Н. Алексей

    Репутация:
    0
    Люди! Можно объяснить для совсем тупых, что делать с этим Visual C++ 6.0? Я скачал, а там куча папок, файлов, куда идти и что с ними делать, понятия не имею. Вы говорите, у Стрелки уже есть готовый проект, но что именно нужно сделать, чтобы ее собрать, я так и не понял. Можно краткую инструкцию в стиле: зайди туда, скопируй то, запусти это и т. д.?
     
  24. WildCat
    Оффлайн

    WildCat Коршунов Игорь Staff Member

    Репутация:
    0
    Я не знаю что там именно ты скачал, т.к. сам не скачивал.

    Если там не дистрибутив, а уже готовая к употреблению студия, то ее можно запустить так:
    \Common\MSDev98\Bin\MSDEV.COM

    Для работоспособности редактора+компилятора установка не требуется.
     
  25. krey
    Оффлайн

    krey Михаил Кройтор Staff Member Команда форума

    Репутация:
    1
    скорее msdev.exe
     
  26. WildCat
    Оффлайн

    WildCat Коршунов Игорь Staff Member

    Репутация:
    0
    Его тоже можно. Но, насколько я помню, после установки Студии создается линк именно на COM.
     
  27. Алексей Н.
    Оффлайн

    Алексей Н. Алексей

    Репутация:
    0
    Запустил, наконец, хотя это оказалась версия 4.0 вместо обещанной при скачке 6.0. И еще потребовалось серийник узнавать. Ну а что надо сделать, чтобы создать в Студии проект Стрелка? Сейчас там никаких проектов нет, и не видно куда кликать, чтобы создать новый проект. И что нужно делать с файлами из стрелкиной папки Src и с какими именно? Извиняюсь за свою непроходимую тупость, но я в этом деле полный чайник.
     
  28. WildCat
    Оффлайн

    WildCat Коршунов Игорь Staff Member

    Репутация:
    0
    Может и не стоит тогда возиться? Более подробно чем в посте #12 я уж не смогу объяснить.
     
  29. Алексей Н.
    Оффлайн

    Алексей Н. Алексей

    Репутация:
    0
    Ну почему же не стоит. Все когда-то начинаешь делать в первый раз. Проект я вроде создал, включил в него 3 файла из 12 поста. Попробовал скомпилировать, не получилось, выдала 106 ошибок.
     
  30. krey
    Оффлайн

    krey Михаил Кройтор Staff Member Команда форума

    Репутация:
    1
    просто 4-я студия поддерживает свой стандарт С, который отличается от стандарта. естественно будут ошибки с совместимостью.
     
  31. дуп
    Оффлайн

    дуп Учаcтник

    Репутация:
    0
    Должно и в четвертой получиться. В этом деле чем древней IDE, ем лучше.

    А какие ошибки то пишет?
     
  32. Vladimirovich
    Оффлайн

    Vladimirovich Консультант

    Репутация:
    31
    Народ, вы меня заинтересовали.
    Дайте плиз линку на исходники.
     
  33. Алексей Н.
    Оффлайн

    Алексей Н. Алексей

    Репутация:
    0
    Да разные выдает ошибки. Вот например:

    Compiling...
    PARSE.C
    C:\Program Files\Arena1.1\Engines\Strelka2.0\SRC\PARSE.C(82) : error C2223: left of '->_cnt' must point to struct/union
    C:\Program Files\Arena1.1\Engines\Strelka2.0\SRC\PARSE.C(85) : warning C4013: 'GetStdHandle' undefined; assuming extern returning int
    C:\Program Files\Arena1.1\Engines\Strelka2.0\SRC\PARSE.C(85) : error C2065: 'STD_INPUT_HANDLE' : undeclared identifier
    C:\Program Files\Arena1.1\Engines\Strelka2.0\SRC\PARSE.C(85) : warning C4047: '=' : 'void *' differs in levels of indirection from 'int '
    C:\Program Files\Arena1.1\Engines\Strelka2.0\SRC\PARSE.C(86) : warning C4013: 'GetConsoleMode' undefined; assuming extern returning int
    C:\Program Files\Arena1.1\Engines\Strelka2.0\SRC\PARSE.C(88) : warning C4013: 'SetConsoleMode' undefined; assuming extern returning int
    C:\Program Files\Arena1.1\Engines\Strelka2.0\SRC\PARSE.C(88) : error C2065: 'ENABLE_MOUSE_INPUT' : undeclared identifier
    C:\Program Files\Arena1.1\Engines\Strelka2.0\SRC\PARSE.C(88) : error C2065: 'ENABLE_WINDOW_INPUT' : undeclared identifier
    C:\Program Files\Arena1.1\Engines\Strelka2.0\SRC\PARSE.C(89) : warning C4013: 'FlushConsoleInputBuffer' undefined; assuming extern returning int
    C:\Program Files\Arena1.1\Engines\Strelka2.0\SRC\PARSE.C(93) : warning C4013: 'PeekNamedPipe' undefined; assuming extern returning int
    C:\Program Files\Arena1.1\Engines\Strelka2.0\SRC\PARSE.C(97) : warning C4013: 'GetNumberOfConsoleInputEvents' undefined; assuming extern returning int
    Strelka.c
    C:\Program Files\Arena1.1\Engines\Strelka2.0\SRC\Strelka.c(90) : error C2365: 'Random' : redefinition; previous definition was a 'function'
    c:\program files\windows ce tools\wce400\standardsdk\include\mipsii_fp\winbase.h(439) : see declaration of 'Random'
    c:\program files\arena1.1\engines\strelka2.0\src\board.c(71) : error C2109: subscript requires array or pointer type
    c:\program files\arena1.1\engines\strelka2.0\src\board.c(71) : error C2109: subscript requires array or pointer type
    c:\program files\arena1.1\engines\strelka2.0\src\board.c(71) : error C2297: '^=' : illegal, right operand has type 'unsigned long (__cdecl *)()'
    c:\program files\arena1.1\engines\strelka2.0\src\board.c(78) : error C2109: subscript requires array or pointer type
    c:\program files\arena1.1\engines\strelka2.0\src\board.c(78) : error C2109: subscript requires array or pointer type
    c:\program files\arena1.1\engines\strelka2.0\src\board.c(78) : warning C4047: '=' : 'unsigned __int64 ' differs in levels of indirection from 'unsigned long (__cdecl *)()'
    c:\program files\arena1.1\engines\strelka2.0\src\board.c(81) : error C2109: subscript requires array or pointer type

    Ну и так далее. Похоже там и в самом деле что-то несовместимо. Либо я проект сделал как-то криво. Она очень многое считает неопределенным или неописанным. Может, не видит какие-то файлы?
     
  34. Vladimirovich
    Оффлайн

    Vladimirovich Консультант

    Репутация:
    31
    Дальше можно не продолжать. Если это работало то Header накрылся.
     
  35. Алексей Н.
    Оффлайн

    Алексей Н. Алексей

    Репутация:
    0
    Ну и что теперь? Доставать 6-ю студию все таки?