impowski
@impowski
Программист C/C++

Как перейти с Windows на Linux для работы с C++?

Появилась масса вопросов на которые надо получить ответ, в поиске почитал похожие проблемы, но не нашел нужных ответов.
Собираюсь в ближайшем будущем переходить на Linux, Windows уже надоедает, чувствую что являюсь потребителем и никаким образом не могу повлиять на работу своего компьютера, являюсь так сказать наблюдателем.
Вопросов масса, хотелось бы более развернутые ответы получить, если конечно вам не трудно.

Я изучаю C/C++ в основном конечно C++, есть некоторые вопросы связанные с ними. Так как я хочу переходить с Windows на Linux, не знаю точно что могу потерять, есть IDE Visual Studio, она мне не очень нравится. WinAPI я не изучаю и прочие вещи, да есть C# и так далее, а там же и разработка на Unity и прочее. Я допускаю такую вероятность что мне придется работать с C#, но я пока точно не уверен для чего, как я знаю хорошей IDE под него пока нет, да есть наработки, но это все не важно, так как моя главная цель это C++.
Так как я нацелен на переход в ОС Linux, интересуют такие вещи как подбор IDE, компиляторы и т.д. Я смотрю сейчас в сторону CLion, но не понимаю некоторых вещей, например CMakeLists(если можете объясните что это для чего и как), MinGW и Cygwin и другие такие вещи. Про MinGW, я более менее понял что то вроде сборщика который работает и под винду и под линукс, с Cygwin пока никак. Так же не очень понятно как разрабатывать программы с интерфейсом в данной IDE, консольные то понятно, но вот оболочка? По факту вопросы с IDE как для CLion так и для Qt будут одинаковыми, правда в Qt все понятно, как с конструирование там и со всем остальным. Понятное дело что если я буду разрабатывать на Linux, это не будут только какие то программы, но и игры и прочие вещи. Могу ли я что то потерять при разработке на Linux для Windows или наоборот на Windows для Linux? Точно не знаю работает ли DirectX под Linux. С компилятором вроде тоже, вроде как GCC бесспорно.

Теперь про сам Linux, на что стоит обратить внимание и как выбрать для себя систему, в игрульки особо играть не собираюсь, а даже если во что то буду то есть Steam, сильно ли потеряю в производительности по сравнению с Windows? Даже если так то есть Wine. Опять же ничего не мешает поставить рядом винду, но это вряд ли.

Если дочитали до конца, спасибо. Жду ответов.
  • Вопрос задан
  • 3844 просмотра
Решения вопроса 1
GavriKos
@GavriKos
1) GUI под линукс можно делать, например, на Qt. Соответственно IDE - QtCreator. Еще вариант - wxWidgets.
2) Возможные IDE - QtCreator, Code::Blocks, Eclipse, CLion. Ну на самом деле их больше, но эти - более friendly при переходе с винды.
3) Забудьте о Unity и C# под линуксом. По крайней мере пока что. Сейчас c# - в полном смысле работает только на винде. IDE для c# - VisualStudio :-)
4) По производительности настроеный линукс лучше ненастроенного виндовс. Это 100%. Но первое время вы потеряете в удобстве. Я лично так и не смог перейти с VisualStudio на линуксовые IDE и не нашел для себя удобного аналога TotalCommander. Плюс сразу забывайте о фотошопе, если вам это важно. Есть конечно gimp, но он полностью не заменит фотошоп.
5) Игры под линуксом можно разрабатывать скорее только на всяких SDL и прочих низкоуровневых openGL движках. Никаких Unity, Marmalade и прочего. Разрабатывать под web - можно спокойно под линуксом. Standalone-приложения - тоже, на Qt.

Вроде постарался по максимуму ответить :-)
Ответ написан
Пригласить эксперта
Ответы на вопрос 6
@Eddy_Em
Быстро не получится.
Сначала почитать пару-тройку книжек про то, как вообще в линуксе работать. Еще неплохо бы Advanced Bash Scripting почитать. Получается, минимум полгода уйдет на литературу.
Далее обкладываемся гентушными хэндбуками, гуголом и т.п. и ставим генту.
Помаленьку настраиваем и через год-два уже на мастдайку вообще не потянет! Главное — понять суть UNIX-way, тогда станет ясно, что мастдайка — это даже не гнилая операционная система, а некачественная прошивка для игровых приставок!
Ответ написан
@vilgeforce
Раздолбай и программист
Пишете на сях под винду без WinAPI и чувствуете себя потребителем? Это потому что вы с системой и не работаете. Линух не поможет при таком подходе :-)
Ответ написан
gaussmake
@gaussmake
недорадиолюбитель с плюсами и друпалом
Касательно IDE - как вариант - Qt Creator. Кстати, проблема UI решается - есть встроенный редактор.
Если используется clion, но вместо с qt -можно использовать отдельно qtdesigner.
В принципе - то же самое касается и прочих вариантов.

CMakeList - смотрите в сторону систем сборки (вкратце - строят по проекту набор инструкций для компилятора) и cmake в частности.
>>>Точно не знаю работает ли DirectX под Linux<<<
Нет, но (в отрыве от 3rd-party компонентов) нужно ли? Вроде как по возможностям свежий OpenGL не особо уступает.
>>>Даже если так то есть Wine<<<
Конечно, в целом оно работает, но я бы оставил винду второй системой. Или же - смотрел бы в сторону проброса видеокарты в виртуальную машину (что не всегда возможно, да).
Ответ написан
День добрый.

Я думаю что задача не совсем правильно поставлена. Нужно определиться с целью. Целью является изучение С, или переход на линукс?
Я так понимаю что вы сейчас всё ещё на winOS. Предлагаю самый безболезненный подход к переходу. Установите виртуальную машину, на ней создайте с десяток разделов, и поставте туда популярные варианты Линукс. В паритете можно графику Gnome и KDE. Разница среди систем будет в репозитарии (что-то вроде Андроид маркета, но где в основном всё бесплатно). Попробуйте установить любимый видеопроигрыватель, походите по вэб страницам, выполните просто привычную вам работу но в новой ОС. И посмотрите с которой вам будет удобнее, менее геморнее и где будет больше документации.
Точно так же выбирайте и IDE, зачастую в репозитарии есть таких штук 3-5 рекомендуемых. Установите их, погоняйте их, соберите в конце концов "Привет Мир". Так вы столкнётесь с первыми зависимостями и камнями. И там где будет проще решать - ту систему и ИДЕ и выбирайте.

Для азов программирования на С, обычного Vim и make хватит. Большие проекты тяжелее уже писать со всеми зависимостями.

Меня настораживает другое. Если вы хотите изучать С#, соответсвенно будете ориентироваться на платформы Windows и .NET. То есть вам всё равно нужно будет по них собирать и тестировать. А значит иметь виндоус где то на виртуальной машине. Отладка будет сложнее, когда малейшую сборку, нужно будет таскать с раздела на раздел.
Ответ написан
mmmaaak
@mmmaaak
Короче я пока читал, потерял пару раз идею вопроса, поэтому скажу следующее. Если вы собирали под виндой свои программы с помощью MinGW, то особых проблем со сборкой под линуксом не будет, так как это и есть GCC портированный под винду. Что касается IDE - выбор есть всегда. Можно, наверно, и Eclipse с плагином под C++ настроить, можно и QtCreator использовать или Netbeans. Я рекомендую QtCreator. По поводу C# - есть MonoDevelop, сам не пробовал, но вроде как норм. По поводу DirectX - скорее всего придется переходить на OpenGL, если хотите кроссплатформенности.
Ответ написан
@syrov
пишу программы до 99 строк
Нашел удобным msys2 + Clion под Windows, и Arch Linux + Clion. gcc 5 есть в и там и там. pacman/pacaur оказались для меня очень удобными (pacman используется как в Arch так и в msys2). Поиск и установка пакетов как assimp, sdl2, opencl, итд очень удобна, и все (отмечу, что в msys2 пакетов меньше, но для разработки достаточно) работает без проблем. msys2 это форк cygwin, но более демократичный (на мой взгляд, со стороны лицензирования), хотя и урезанный. Clion, хотя и не бесплатный, но для новичка, как я, хороший выход кросс платформенной IDE. cmake очень нравиться, сборка моей программы без проблем работают и под windows и linux. Прошел vimtutor и этого хватило для git submit . . Конечно DirectX поменять на OpenGL и OpenCL и посмотреть на ОpenMP. Удачи.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы