cmake адское НЕ НУЖНОЕ говно...
От: imh0  
Дата: 26.01.21 09:48
Оценка: 12 (2) +3 -8 :)
Привет!

Крик души.... )

Сейчас существует LINUX, винда, маки...
Маки и Linux очень близки по инструментам.

То есть с точки зрения систем сборки остается Винда и никсы.
Зачем нужен тормознутый CMAKE? Я лично предпочитаю иметь два ПРОСТЫХ, понятных, и главное стандартных проекта — один для make второй для студии.
Проекты без кастомных выпендрежей — все предсказуемо и сделанно нарочно "как обычно".

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

Зачем люди делают адски запутанные но зато кросплатформенные cmake проекты?
Зачем!? Если надо то всего две платформы?

Пример дичи это — https://github.com/opencv/opencv
Вместо того чтобы иметь в каждой папке субпроекта makеfile или prj, там дикое спагетти из Cmakefile.txt.
Причем смысл их использования не очевиден, если тронешь какой-то то весь проект пересобирается, а он собирается не быстро совсем.

CMAKE не нужен! Он вреден, он не дает пользы, он не решает проблемы кросплатформенности — например надо указать опцию компилятору С++ — не показывать предупреждения такого-то — это нельзя сделать кросплатформенно. Например надо указать не делать оптимизации — также нет средства указать это кросплатформенно.

То есть имея всего на свете в наличии две мощные системы — msbuild и make которые позволяют с помощью проектов в три строчки сделать сборку, мы имеем какой трешак.

Давайте делать сложные вещи просто. )
Re: cmake адское НЕ НУЖНОЕ говно...
От: koenjihyakkei Россия  
Дата: 26.01.21 11:15
Оценка: +3 :))
Здравствуйте, imh0, Вы писали:

ИТ в свое время сделало две огромные ошибки — то что cmake и javascipt стали настолько популярны.
Отредактировано 26.01.2021 12:26 koenjihyakkei . Предыдущая версия .
Re: cmake адское НЕ НУЖНОЕ говно...
От: SomeOne_TT  
Дата: 26.01.21 11:38
Оценка: :))) :)
Здравствуйте, imh0, Вы писали:


I>Зачем люди делают адски запутанные но зато кросплатформенные cmake проекты?

I>Зачем!? Если надо то всего две платформы?

I>Пример дичи это — https://github.com/opencv/opencv



I>Давайте делать сложные вещи просто. )



Re: cmake адское НЕ НУЖНОЕ говно...
От: LaptevVV Россия  
Дата: 26.01.21 11:55
Оценка: :)))
Вот я тоже не могу въехать: нахрена он сдался-то?
Есть make, который делает все, что нужно.
Зачем еще городить над ним надстройку — так и не понял...
Хочешь быть счастливым — будь им!
Без булдырабыз!!!
Re[2]: cmake адское НЕ НУЖНОЕ говно...
От: koenjihyakkei Россия  
Дата: 26.01.21 12:31
Оценка: +4
Здравствуйте, LaptevVV, Вы писали:

LVV>Вот я тоже не могу въехать: нахрена он сдался-то?

LVV>Есть make, который делает все, что нужно.
LVV>Зачем еще городить над ним надстройку — так и не понял...

Это вопрос типа — зачем нужен С++, если есть ассемблер.

make более низкоуровненный, к тому же он медленный, а в cmake можно подать опцию -GNinja и он будет генерить не make файлы, а ninja, что в разы быстрее.
Отредактировано 26.01.2021 12:32 koenjihyakkei . Предыдущая версия .
Re: cmake адское НЕ НУЖНОЕ говно...
От: velkin Удмуртия http://blogs.rsdn.org/effective/
Дата: 26.01.21 12:53
Оценка:
Здравствуйте, imh0, Вы писали:

I>CMAKE не нужен! Он вреден, он не дает пользы, он не решает проблемы кросплатформенности


Если не нужен, то не используй и проблема решена. Утилита make у каждого компилятора своя, со своим синтаксисом, отсюда и попытки создать что-то обобщающее.

CMake от англ. cross-platform make

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

I>Например надо указать не делать оптимизации — также нет средства указать это кроссплатформенно.


В этом есть определённая логика, хотя это не отменяет общих опций генератора. Но если уж говорить об этом, то у компиляторов просто огромное количество настроек работающих в каждом из них не идентично относительно других.

Но ладно cmake, некоторые проекты заставляют меня использовать scons и другие программы. В любом случае имеем зоопарк программ. Я вот, например, предпочитаю qmake, даже если это не проект с библиотеками qt.

И какой вывод? Наверное каждый делает как ему удобно. Как уже выше написал, если удобно вводить для каждого компилятора всё вручную, то почему нет.
Re: cmake адское НЕ НУЖНОЕ говно...
От: Kolesiki  
Дата: 26.01.21 12:56
Оценка:
Здравствуйте, imh0, Вы писали:

I>То есть с точки зрения систем сборки остается Винда и никсы.


+1

I>Я лично предпочитаю иметь два ПРОСТЫХ, понятных, и главное стандартных проекта — один для make второй для студии.


+1000000000000!!!

I>Зачем люди делают адски запутанные но зато кросплатформенные cmake проекты?


Классическая болезнь космических архитекторов: имея проблему и два кастомных случая, они раздувают её до масштабного проекта, где "две опции" превращаются в универсальный всемогутер, причём даже для существующих опций сделано всё равно через Жо. Все эти "генераторы генераторов" и ЦМАКЕ надо гнать ссаными тряпками!
Не так сложны проекты (и не так часто они меняются), чтобы при внесении ещё пары сорсов, не добавить их вручную в ДВА ФАЙЛА! Два, Карл!
Re: cmake адское НЕ НУЖНОЕ говно...
От: kaa.python Ниоткуда РСДН профессионально мёртв и завален ватой.
Дата: 26.01.21 12:58
Оценка: 1 (1) +1
Здравствуйте, imh0, Вы писали:

I>То есть с точки зрения систем сборки остается Винда и никсы.

I>Зачем нужен тормознутый CMAKE? Я лично предпочитаю иметь два ПРОСТЫХ, понятных, и главное стандартных проекта — один для make второй для студии.

А почему для студии?

I>Проекты без кастомных выпендрежей — все предсказуемо и сделанно нарочно "как обычно".


Ну так их поддерживать по любому будет проблемно. CMake — это же не только сборка, это еще установка, настройка путей, настройка и запуск тестов и прочее. Довольно удобного когда всё в одном месте.

I>Любой новый человек сразу въезжает в систему сборки так как он видит привычные патерны.


Ну так ты видишь ОДИН CMake и тебе не надо париться со студией и прочим. Мне куда проще открыть Vim на той же венде и поправить CMake, чем в менюшках Студии ковыряться.

I>Зачем люди делают адски запутанные но зато кросплатформенные cmake проекты?

I>Зачем!? Если надо то всего две платформы?

Основная, да и единственная проблема CMake — невероятно уродский синтаксис самого языка. В остальном, штука удобная и практичная.
Отредактировано 26.01.2021 12:58 kaa.python . Предыдущая версия .
Re[2]: cmake адское НЕ НУЖНОЕ говно...
От: koenjihyakkei Россия  
Дата: 26.01.21 12:59
Оценка: +1
Здравствуйте, velkin, Вы писали:

Да, но если нет выбора (например, на работе используется cmake) и волей-неволей приходится возиться с cmake'ом и его говносинтаксисом.
Re: cmake адское НЕ НУЖНОЕ говно...
От: msorc Грузия  
Дата: 26.01.21 13:01
Оценка:
Здравствуйте, imh0, Вы писали:

Ну, например, зависимости правильно обработать. А то даже в разных Linux дистрах может библиотека и заголовочные файлы лежать в разных местах и под разными именами. И оно может само найти эти пакеты и прописать в makefile что нужно.
Re[2]: cmake адское НЕ НУЖНОЕ говно...
От: imh0  
Дата: 26.01.21 13:05
Оценка:
Здравствуйте, velkin, Вы писали:

I>>CMAKE не нужен! Он вреден, он не дает пользы, он не решает проблемы кросплатформенности


V>Если не нужен, то не используй и проблема решена. Утилита make у каждого компилятора своя, со своим синтаксисом, отсюда и попытки создать что-то обобщающее.

V>

V>CMake от англ. cross-platform make

V>Причём это ведь не какой-то стандарт, есть и другие решения. И, конечно, никто не запрещает создавать файл сборки вручную для каждого компилятора без какой-либо генерации.

Я подчеркнул... Простите Вы это о чем таком? Какая утилита make у каждого компилятора? )

I>>Например надо указать не делать оптимизации — также нет средства указать это кроссплатформенно.


V>В этом есть определённая логика, хотя это не отменяет общих опций генератора. Но если уж говорить об этом, то у компиляторов просто огромное количество настроек работающих в каждом из них не идентично относительно других.


Компилятор под виндой настраивается в файле проекта, компилятор GCC под линукс настраивается в makefile. Зачем CMatefile.txt в котором я буду писать IF LINUX бла-бла-бла IF WINDOWS бла-бла-бла?
Мне проще взять виндойвый файл настройки прокта и там настроить... И взять линуксовый и там настроить. И никакого if linux ... if windows

V>Но ладно cmake, некоторые проекты заставляют меня использовать scons и другие программы. В любом случае имеем зоопарк программ. Я вот, например, предпочитаю qmake, даже если это не проект с библиотеками qt.


V>И какой вывод? Наверное каждый делает как ему удобно. Как уже выше написал, если удобно вводить для каждого компилятора всё вручную, то почему нет.


Нет тут вы в принците ошибаетесь — ибо, надо делать промышленный код, а не код как мне нравится. Код надо сопровождать, код надо передавать другим.

Поэтому если кому то нравится писать на паскале, то ему ни кто так делать не даст. Ему такое решение не согласуют. )
Re: cmake адское НЕ НУЖНОЕ говно...
От: Senyai Россия http://www.arseniy.net
Дата: 26.01.21 13:08
Оценка: +2
Здравствуйте, imh0, Вы писали:

I>Любой новый человек сразу въезжает в систему сборки так как он видит привычные патерны.


I>Зачем люди делают адски запутанные но зато кросплатформенные cmake проекты?

Не осилили cmake.

I>Зачем!? Если надо то всего две платформы?

Платформы платформами, но хочется отрыть ide, нажать run и не думать о системе сборки. cmake такое позволяет.

I>Пример дичи это — https://github.com/opencv/opencv

opencv в целом дичь, там и c++ ужасный (делал PR). Надо признать, CMakeLists мало кто умеет писать просто и красиво, так сразу на ум публичный проект не приходит.

I>Вместо того чтобы иметь в каждой папке субпроекта makеfile или prj, там дикое спагетти из Cmakefile.txt.

I>Причем смысл их использования не очевиден, если тронешь какой-то то весь проект пересобирается, а он собирается не быстро совсем.
в нормальных CMakeLists такого нет.

I>CMAKE не нужен! Он вреден, он не дает пользы, он не решает проблемы кросплатформенности — например надо указать опцию компилятору С++ — не показывать предупреждения такого-то — это нельзя сделать кросплатформенно. Например надо указать не делать оптимизации — также нет средства указать это кросплатформенно.

А на что в ide выбор Debug, Release, RelWithDebInfo? Можно ещё и свои конфигурации создавать.

I>То есть имея всего на свете в наличии две мощные системы — msbuild и make которые позволяют с помощью проектов в три строчки сделать сборку, мы имеем какой трешак.

cmake это обёртка над мощными системами сборки. я люблю ninja, но я не хочу всех разработчиков в проекте на эту систему сборки переучивать. cmake позволяет найти системные библиотеки (например FindPNG) и исполняемые файлы (например FindDoxygen), что крайне просто и позволяет, (если правильно написать cmakelists, конечно), заранее узнать что сборка будет удачной. Т.е. если стадия конфигурации выполнена успешно, значит код будет собран со всеми нужными зависимостями. Плюс встроенная система тестирования приятная. Синтаксис, конечно, на любителя, но т.к. кода нужно мало, то и не важно.

I>Давайте делать сложные вещи просто. )

Сложных вещей не существует. Задавайте вопросы, скажу как с помощью cmake сделать просто.
Не бойтесь совершенства. Вам его не достичь. © Сальвадор Дали
Re[2]: cmake адское НЕ НУЖНОЕ говно...
От: imh0  
Дата: 26.01.21 13:19
Оценка:
Здравствуйте, kaa.python, Вы писали:

KP>А почему для студии?


Ну потому что для винды, это самое то что надо. )
Нет ничего лучше. Не будем тут рассматиривать систиемо-заменители типа mingw, wsl и пр.
Что другое кроме студии?

I>>Проекты без кастомных выпендрежей — все предсказуемо и сделанно нарочно "как обычно".


KP>Ну так их поддерживать по любому будет проблемно. CMake — это же не только сборка, это еще установка, настройка путей, настройка и запуск тестов и прочее. Довольно удобного когда всё в одном месте.


Установка где? В винде простите? Видимо только в никсах... Ну тогда нафига кросплатформенность?)

I>>Любой новый человек сразу въезжает в систему сборки так как он видит привычные патерны.


KP>Ну так ты видишь ОДИН CMake и тебе не надо париться со студией и прочим. Мне куда проще открыть Vim на той же венде и поправить CMake, чем в менюшках Студии ковыряться.


Ну тут опять же есть две бестпрактикс — 1)Не надо в один монастырь приходить с тулсами от другого — студия дает возможность настравивать проекты не входя в что-то кастомное. То есть настравивая через менющки ты все равно останешся в парадигме msbuild и студия про смене версий тебе сама проект сконвертит. То есть уж коли в этом монастыре надо через менющки — уж возьми себя в руки и работай, а не говори что тебе лень. )

I>>Зачем люди делают адски запутанные но зато кросплатформенные cmake проекты?

I>>Зачем!? Если надо то всего две платформы?

KP>Основная, да и единственная проблема CMake — невероятно уродский синтаксис самого языка. В остальном, штука удобная и практичная.


Синтаксис фигня — там в самой философии проблемы.
Почему профессионалы не используют только разводные ключи — ведь так удобно? ))


Да по тому что профи видят, чуют, понимают ньансы систем. Выбрать что-то общее между двумя системами, это значит лишить обе лучших свойств.

Мне проще у себя у голове иметь кросплатформеннай адаптер — типа могу обинаково круто работать и под виндой и под нисками. Чем утешать себя что есть cmake!
Re[2]: cmake адское НЕ НУЖНОЕ говно...
От: imh0  
Дата: 26.01.21 13:21
Оценка:
Здравствуйте, msorc, Вы писали:

M>Ну, например, зависимости правильно обработать. А то даже в разных Linux дистрах может библиотека и заголовочные файлы лежать в разных местах и под разными именами. И оно может само найти эти пакеты и прописать в makefile что нужно.


Так есть же инструменты и интерфейсы которые все эти различия учитывают автоматически. Зачем cmakе то?
Re: cmake адское НЕ НУЖНОЕ говно...
От: jahr  
Дата: 26.01.21 13:25
Оценка: +3
Здравствуйте, imh0, Вы писали:


I>Зачем нужен тормознутый CMAKE? Я лично предпочитаю иметь два ПРОСТЫХ, понятных, и главное стандартных проекта — один для make второй для студии.

I>Проекты без кастомных выпендрежей — все предсказуемо и сделанно нарочно "как обычно".

I>Любой новый человек сразу въезжает в систему сборки так как он видит привычные патерны.


А теперь попробуйте такой проект с простыми и понятными проектами добавить как зависимость к своему проекту с двумя простыми и понятными проектами.) А если таких зависимостей — десятки?
А с симейком — просто добавляешь git submodule и add_subdirectory в свой CMakeLists.txt
И подобных отличий — куча, лениво их перебирать. Сколько-нибудь сложный кроссплатформенный проект на чистом мейке уже не напишешь.
Re[3]: cmake адское НЕ НУЖНОЕ говно...
От: velkin Удмуртия http://blogs.rsdn.org/effective/
Дата: 26.01.21 13:29
Оценка:
Здравствуйте, imh0, Вы писали:

I>Я подчеркнул... Простите Вы это о чем таком? Какая утилита make у каждого компилятора? )


make

Диалекты:
1) BSD make
2) GNU make (GNU Compiler Collection)
3) Microsoft nmake (Microsoft Compilers)

А вообще компиляторов огромное количество.

I>Поэтому если кому то нравится писать на паскале, то ему ни кто так делать не даст. Ему такое решение не согласуют. )


Кто не согласует? OpenCV это лишь один из многочисленных проектов использующих cmake. Если разработчик решил использовать это решение, то никто ему не сможет запретить.

I>Нет тут вы в принципе ошибаетесь — ибо, надо делать промышленный код, а не код как мне нравится. Код надо сопровождать, код надо передавать другим.


Мне вот, например, не нравится Android/Linux, то как его сделали. Никакой безопасности, при этом изобрели какую-то муть, вместо того, чтобы использовать хотя бы GNU/Linux с теми же проектами на C++. При том GNU/Linux на смартфонах работает, тот же Debian и другие. Но кто меня спрашивает.

Что касается сопровождения кода, то я уже сказал, как кому нравится, тот так и будет делать. Более того, у каждого человека своё мнение. Я, например, могу сказать, выкиньте уже Microsoft Compilers, пользуйтесь в винде MinGW, это же порт GCC и не нужно никаких извращений вроде двух параллельных файлов проекта. А кому-то надо именно решение от мелкомяких, другим Intel C++ Compiler и так далее и тому подобное.
Re[2]: cmake адское НЕ НУЖНОЕ говно...
От: imh0  
Дата: 26.01.21 13:36
Оценка: -1
Здравствуйте, Senyai, Вы писали:

S>Не осилили cmake.


Оч крут в нем...
Только вот что-то после того как уведел "это" я понял, что за cmake пока карать. )
У cmake есть только одно удобное — это его ГОТОВЫЕ модули для разных инструментов, ну например для DPDK....

I>>Зачем!? Если надо то всего две платформы?

S>Платформы платформами, но хочется отрыть ide, нажать run и не думать о системе сборки. cmake такое позволяет.

Так в виндовой студии оно именно так — и еще и поддерживается авто-апграйд.
В никсах — все IDE умеют в make, который раз в 10 быстрее работает. И тоже нажал run и все.

I>>Пример дичи это — https://github.com/opencv/opencv

S>opencv в целом дичь, там и c++ ужасный (делал PR). Надо признать, CMakeLists мало кто умеет писать просто и красиво, так сразу на ум публичный проект не приходит.

I>>Вместо того чтобы иметь в каждой папке субпроекта makеfile или prj, там дикое спагетти из Cmakefile.txt.

I>>Причем смысл их использования не очевиден, если тронешь какой-то то весь проект пересобирается, а он собирается не быстро совсем.
S>в нормальных CMakeLists такого нет.

Так я именно про это и говорю — в винде студия не дает создать урода — просто через менюшки это не получится. ) Ну находятся конечно уроды которые лезут в prj руками... )

В никсах тоже есть какбы стандарт на проекты — makefile. Никто не станет делать собрку скриптами... Хотя конечно находятся и такие уроды )

I>>CMAKE не нужен! Он вреден, он не дает пользы, он не решает проблемы кросплатформенности — например надо указать опцию компилятору С++ — не показывать предупреждения такого-то — это нельзя сделать кросплатформенно. Например надо указать не делать оптимизации — также нет средства указать это кросплатформенно.

S>А на что в ide выбор Debug, Release, RelWithDebInfo? Можно ещё и свои конфигурации создавать.

Так не делать оптимизацию можно в диапазоне... Не просто — вкл/выкл.

I>>То есть имея всего на свете в наличии две мощные системы — msbuild и make которые позволяют с помощью проектов в три строчки сделать сборку, мы имеем какой трешак.

S>cmake это обёртка над мощными системами сборки. я люблю ninja, но я не хочу всех разработчиков в проекте на эту систему сборки переучивать. cmake позволяет найти системные библиотеки (например FindPNG) и исполняемые файлы (например FindDoxygen), что крайне просто и позволяет, (если правильно написать cmakelists, конечно), заранее узнать что сборка будет удачной. Т.е. если стадия конфигурации выполнена успешно, значит код будет собран со всеми нужными зависимостями. Плюс встроенная система тестирования приятная. Синтаксис, конечно, на любителя, но т.к. кода нужно мало, то и не важно.

cmake уродует эти мощниые инструменты ограничивая его пользователя до 10% от их возожностей. И это на самом деле оч. плохо. Так как у человека создаеются впечатление что он на пике, а он совсем не там.

I>>Давайте делать сложные вещи просто. )

S>Сложных вещей не существует. Задавайте вопросы, скажу как с помощью cmake сделать просто.

Ну это как бы очень известное выражение — "Писать просто это сложно" Погуглите.

Сложные вещие есть. И сложность их не в том что кому-то кажется что он умный и умеет в этих простых вещах разбираться, а в том, что ни у какого человека мозгов не зватит, построить в голове модель сложной системы "без обобщения". Вот что такое сложные вещи, а не какие-то хрени типа cmake)
Re[2]: cmake адское НЕ НУЖНОЕ говно...
От: Nuzhny Россия https://github.com/Nuzhny007
Дата: 26.01.21 13:37
Оценка:
Здравствуйте, LaptevVV, Вы писали:

LVV>Есть make, который делает все, что нужно.


а зачем нужны autoconf и automake? Зачем нужны configure? Зачем нужен сам make, если можно на баше написать самому скрипт по сборке проекта?
Re[4]: cmake адское НЕ НУЖНОЕ говно...
От: imh0  
Дата: 26.01.21 13:45
Оценка:
Здравствуйте, velkin, Вы писали:

V>Здравствуйте, imh0, Вы писали:


I>>Я подчеркнул... Простите Вы это о чем таком? Какая утилита make у каждого компилятора? )


V>make

V>

V>Диалекты:
V>1) BSD make
V>2) GNU make (GNU Compiler Collection)
V>3) Microsoft nmake (Microsoft Compilers)

V>А вообще компиляторов огромное количество.

Так причем тут BSD make и компилятор? Причем тут nmake и make? Nmake уже давно на помоечку. )
То есть как связанны make и компиляторы, вы не раскрыли.
Но я думаю я вас понял — вы имели ввиду что много там всяких средств разработки и там есть свои мейки. Но не компиляторы.

Ну так нет такого — есть make и есть BSD make и все.

I>>Поэтому если кому то нравится писать на паскале, то ему ни кто так делать не даст. Ему такое решение не согласуют. )


V>Кто не согласует? OpenCV это лишь один из многочисленных проектов использующих cmake. Если разработчик решил использовать это решение, то никто ему не сможет запретить.


Да ладно...! Это какие-то средние века прям.
Есть архитектор есть отдел архитектуры где надо согласовывать тех решение. И есть корп. стандарты — и все хотелки разраба-клоуна должны идти в помойку )

I>>Нет тут вы в принципе ошибаетесь — ибо, надо делать промышленный код, а не код как мне нравится. Код надо сопровождать, код надо передавать другим.


V>Мне вот, например, не нравится Android/Linux, то как его сделали. Никакой безопасности, при этом изобрели какую-то муть, вместо того, чтобы использовать хотя бы GNU/Linux с теми же проектами на C++. При том GNU/Linux на смартфонах работает, тот же Debian и другие. Но кто меня спрашивает.


Тех. процессы в компании должны быть. Это как производство молока не фабрике. ) Одно дело в деревне — как хочу так и ворочу...

V>Что касается сопровождения кода, то я уже сказал, как кому нравится, тот так и будет делать. Более того, у каждого человека своё мнение. Я, например, могу сказать, выкиньте уже Microsoft Compilers, пользуйтесь в винде MinGW, это же порт GCC и не нужно никаких извращений вроде двух параллельных файлов проекта. А кому-то надо именно решение от мелкомяких, другим Intel C++ Compiler и так далее и тому подобное.


Да давно уже есть WSL... Все это унылое г типа мингв превратилось тыкву.
Что касается ICL то это тоже уже тыква)
Re[2]: cmake адское НЕ НУЖНОЕ говно...
От: imh0  
Дата: 26.01.21 13:50
Оценка:
Здравствуйте, jahr, Вы писали:

J>А теперь попробуйте такой проект с простыми и понятными проектами добавить как зависимость к своему проекту с двумя простыми и понятными проектами.) А если таких зависимостей — десятки?


Легко... В студии в msbuild делается вообще просто "добавить ссылку" в линуксе make все прекрасно умеет.

J>А с симейком — просто добавляешь git submodule и add_subdirectory в свой CMakeLists.txt


И вот с add_subdirectory получишь в итоге хрень... Подкаталоги должны быть внутри дерева проекта. А если нет, то придется руками копировать собранные таргеты.

J>И подобных отличий — куча, лениво их перебирать. Сколько-нибудь сложный кроссплатформенный проект на чистом мейке уже не напишешь.


Кросплатформенный это как? Если мейк то только никсы.
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.