Как скомпилировать библиотеки мода под Linux и Mac OS
Как вы все знаете я не силен в с++, но как скомпилировать исходники в 2010 студии я представляю = F9.
А как собрать исходники для линукса и мак оси? Если кто знает просьба поделиться теорией возможными подводными камнями если реально это в принципе и желательно пошаговые инструкции если у кого есть практический опыт. Я слышал про компилятор QT, вроде что он кроссплатформенный. В общем буду рад любой инфе.
Там Makefile используется. Потребуется make, g++ и т.д. Ну и, собственно, Линукс или Макось (на макоси вместо g++ скорее всего будет использоваться clang). Также там используется неизвестная мне утилита p11, которая, как я понял, проприетарная и что-то делает с итоговыми библиотеками, но можно убрать её вызов, библиотеки всё равно скомпилятся.
По моему опыту Makefile надо править под свою систему (это недолго), ибо Valve все нужные утилиты поместили в свои пути ( /valve/bin).
Qt - не компилятор, а библиотека, и к делу отношения не имеет.
Помню, что сборка линукс-версии под оригинальную халфу (дедикейтед) требовала жутко старых glibc и gcc 2.95. Вот это были пляски с бубном, когда я хеткрап френзи собирал. Молодость, эх.
Правда, вот беда, сегодня попробовал клиентку скомпиленную таким образом в ставить в мод - так там глючит мышь, не возвращается на середину как полагается, поэтому обзор зависит от ширины твоего экрана и от положения мыши в меню Может быть, ~ X ~ подскажет, что делать.
FreeSlave а галочка raw mouse input или чототам подобное в настройках мышки стоит? Если да, отключи нафик. У меня из-за неё ограничения обзора по размеру экрана были.
Ku2zoff, я про неё знаю. Не работает ни так ни сяк. Про это был issue на гитхабе. В вальвоских играх нормально пашет, а вот выложенные сорцы видимо недоисправили. А может тут и вовсе косяк SDL.
Cybermax
Полагаю, задумывались все. Но большинство пришло к закономерному выводу: "анафигононадо". Лично я компилил под линукс только потому, что мне было интересно разобраться. Собсно, с этого и началось моё знакомство с линуксом, gcc и проблемами портирования кода.
У меня до сих пор стоит cygwin и mingw с кросс-компилятором 2.95.
Маке-файлы не обновлял уже пару лет, но когда-то оно работало... кто-то говорил даже, что ХЛ и гцц4 сожрёт, но так и не срослось...
Проще завести линуксовую машину, чесслово.
А теперь, когда ещё и клиентка под линугз.... +_+
~ X ~ Ты лучше по подробнее про мак расскажи. Желательно пошаговую инструкцию плюс ссылочки на софт и какие то там Маке-файлы пажалуста!!!! Интересно узнать что то новое от опытного товарища
Cybermax, да тут шагов всего ничего.
1. Скачиваешь и ставишь дистрибутив линукса. На виртуальную машину или другой раздел.
(Здесь пропущена часть, где ты долго и мучительно осваиваешь выбранный дистрибутив, кормишь пингвинов и зарабатываешь красноглазие)
2. Убеждаешься, что установлены make и g++. Make обычно установлен, ибо базовая утилита, а вот g++ приходится ставить отдельно. Зависит от дистрибутива.
3. С помощью git стягиваешь сорцы с https://github.com/ValveSoftware/halflife/ Если не хочешь иметь дело с гитом, то просто качаешь zip-архив (там есть ссылка)
4. Заходишь в halflife/linux. Заменяешь файлы теми, что я кидал выше.
5. Делаешь изменения в inputw32.cpp с помощью любимого текстового редактора.
6. В командной строке, находясь в этой же папке, набираешь make.
7. Внимательно смотришь на буковки, которые выводятся в консоль, и ждёшь окончания. Первый билд может быть долгим.
8. Если всё хорошо, то в папке release должны появиться hl.so и client.so. Это как dll, только на линуксе.
7. ???
8. Готово!
Под макось рассказать не могу, не имел дела. Судя по алгоритму сборки, понадобятся XCode и clang.
Я жутко извиняюсь за поднятие старой темы Сегодня убил кучу времени, но таки скомпилил дллки своего мода под линукс. Проверил. Первая пакость: виндовая версия прекрасно жрёт серверную дллку из папки cl_dlls. Линуксовая не хочет, ей клади сошку в dlls. Ну да чёрт с ними с папками. Запустил - проблема с мышью. В обсуждениях на гитхабе она поднималась, чего-то там писали, да так видно и не исправили. Как Фрислэйв подсказал, так я и исправил. Причём, под виндой нормально без фикса работает, а под линуксом нет. Как галки в меню не меняй.
И вообще, этот линукс меня бесить стал. Я кучу времени убил, чтобы наладить себе вменяемую рабочую среду: потому что:
1. В стабильном дистре дебиана (вхизи который) стим не устанавливается без бубна.
2. В тестируемом дистре (джесси который) почему-то ставится не то ядро, что в репах, поэтому пришлось удалить ядро, которое установилось с netinst CD, и скачать из реп актуальное, чтобы поставить драйвер нвидиа.
3. Кеды чудят со звуком, и ещё, разрабы-фошысты выпилили из джесси жырнокрысу Между прочим, очень годная качалка.
Я понимаю, что дистр тестовый, но тот же вхизи на стадии тестирования был куда стабильнее.
З.Ы. Меня терзают смутные сомнения: а нужна ли вообще линукс-версия? На бубунте и так всё глючит и тормозит, а тут ещё и глючный мод будет Про дебиан молчу, потому что на стабильном стима нет, а тестовый нубьё не осилит. Чего стоит только засада с ядром.
Добавлено 07-01-2015 в 02:52:
З.З.Ы. Кстати, всех с новым годом! А то я не поздравлял ещё.
Ku2zoff, насчёт пути к клиентке - может, ты liblist.gam неправильно написал? cldll "1" поставил?
upd: неправильно прочёл. Ты наоборот серверную хочешь грузить из папки клиента. Но зачем? Попробуй gamedll_linux тогда добавить нужный.
Фикс для мышки они почему-то так и не хотят пушить в репозиторий, да. Да и я не уверен, достаточно ли того, что я привёл - возможно мышка ведёт себя не совсем корректно без raw input.
Не знаю, какие там у вас проблемы с линуксом. У меня всё прекрасно работает. Были небольшие проблемы с FBO из-за HLFX 0.7, но удалось обойти. И с мышкой фикс, но в этом вся фишка - каждый делает собственный фикс, иначе скучно было бы, правда же?