A
A
Artem Biryukov2015-03-22 19:12:16
linux
Artem Biryukov, 2015-03-22 19:12:16

How to switch from Windows to Linux to work with C++?

There were a lot of questions that need to be answered, I read similar problems in the search, but did not find the right answers.
I am going to switch to Linux in the near future, Windows is already boring, I feel that I am a consumer and in no way can influence the operation of my computer, I am an observer, so to speak.
There are a lot of questions, I would like to get more detailed answers, unless of course it’s difficult for you.
I'm learning C/C++ mostly of course C++, there are some questions related to them. Since I want to switch from Windows to Linux, I don’t know exactly what I can lose, there is a Visual Studio IDE, I don’t really like it. I don’t study WinAPI and other things, but there is C # and so on, and there is also development on Unity and so on. I admit such a possibility that I will have to work with C #, but I'm still not exactly sure for what, as I know there is no good IDE for it yet, but there are developments, but it's all not important, since my main goal is C ++.
Since I am aiming to move to Linux OS, I am interested in such things as choosing an IDE, compilers, etc. I'm now looking towards CLion, but I don't understand some things, such as CMakeLists (if you can explain what it is for what and how), MinGW and Cygwin and other such things. About MinGW, I more or less understood something like a assembler that works under both Windows and Linux, with Cygwin not yet. It is also not very clear how to develop programs with an interface in this IDE, console ones are understandable, but what about the shell? In fact, the issues with the IDE for both CLion and Qt will be the same, though in Qt everything is clear, both with designing there and with everything else. It is clear that if I develop on Linux, it will not only be some programs, but also games and other things. Can I lose something when developing on Linux for Windows or vice versa on Windows for Linux? I don't know for sure if DirectX works under Linux. With the compiler, it seems, too, sort of like GCC, no doubt.
Now about Linux itself, what you should pay attention to and how to choose a system for yourself, I’m not going to play games much, and even if I play Steam, will I lose much in performance compared to Windows? Even so, that is Wine. Again, nothing prevents you from putting Windows next to it, but this is unlikely.
If you have read to the end, thank you. I'm waiting for answers.

Answer the question

In order to leave comments, you need to log in

6 answer(s)
G
GavriKos, 2015-03-22
@impowski

1) GUI under Linux can be done, for example, on Qt. Accordingly IDE - QtCreator. Another option is wxWidgets.
2) Possible IDEs - QtCreator, Code::Blocks, Eclipse, CLion. Well, actually there are more of them, but these are more friendly when moving from Windows.
3) Forget about Unity and C# under Linux. At least for now. Now c# - in the full sense works only on Windows. IDE for c# - VisualStudio :-)
4) In terms of performance, tuned Linux is better than unconfigured Windows. It's 100%. But the first time you will lose in convenience. I personally could not switch from VisualStudio to Linux IDEs and did not find a convenient analogue of TotalCommander for myself. Plus, forget about Photoshop right away, if that's important to you. There is of course gimp, but it will not completely replace Photoshop.
5) Games under Linux can be developed only on all sorts of SDL and other low-level openGL engines. No Unity, Marmalade, etc. You can develop under the web - you can safely under Linux. Standalone applications - also, on Qt.
I tried my best to answer :-)

E
Eddy_Em, 2015-03-22
@Eddy_Em

It won't work quickly.
First, read a couple of books about how to work in Linux in general. It would also be nice to read Advanced Bash Scripting. It turns out that at least six months will be spent on literature.
Next, we cover with gentush handbooks, googol, etc. and install gent.
Little by little we set up and in a year or two it won’t pull on a mastdayka at all! The main thing is to understand the essence of the UNIX-way, then it will become clear that a must-have is not even a rotten operating system, but poor-quality firmware for game consoles!

V
Vladimir Martyanov, 2015-03-22
@vilgeforce

Do you write under Windows without WinAPI and feel like a consumer? This is because you are not working with the system. Linux will not help with this approach :-)

E
Eldar Musin, 2015-03-23
@eldarmusin

Good afternoon.
I think that the task is not quite correctly set. You need to decide on a goal. Is the goal learning C, or switching to Linux?
I understand that you are still on winOS. I offer the most painless approach to the transition. Install a virtual machine, create a dozen partitions on it, and install popular Linux options there. In parity, you can graphics Gnome and KDE. The difference between the systems will be in the repository (something like the Android market, but where basically everything is free). Try to install your favorite video player, surf the web pages, just do the work you are used to but in the new OS. And see which one will be more convenient for you, less hemorrhagic and where there will be more documentation.
In the same way, choose an IDE, often there are 3-5 recommended ones in the repository. Install them, race them, finally assemble "Hello World". This is how you will encounter the first addictions and stones. And where it will be easier to decide - that system and IDE and choose.
For the basics of programming in C, the usual Vim and make will suffice. Large projects are harder to write with all the dependencies.
Something else worries me. If you want to learn C#, you will be targeting the Windows and .NET platforms accordingly. That is, you still need to collect and test them. And that means having Windows somewhere on a virtual machine. Debugging will be more difficult when the smallest assembly will need to be dragged from section to section.

P
Pavel Shvedov, 2015-03-22
@mmmaaak

In short, while I was reading, I lost the idea of ​​\u200b\u200bthe question a couple of times, so I will say the following. If you built your programs under Windows using MinGW, then there will be no special problems with building under Linux, since this is GCC ported to Windows. As for the IDE, there is always a choice. You can, probably, set up Eclipse with a plugin for C ++, you can also use QtCreator or Netbeans. I recommend QtCreator. As for C# - there is MonoDevelop, I haven't tried it myself, but it seems to be normal. Regarding DirectX - most likely you will have to switch to OpenGL if you want cross-platform.

A
Andryukha, 2015-08-27
@syrov

I found msys2 + Clion convenient for Windows, and Arch Linux + Clion. gcc 5 is in both there and there. pacman/pacaur have been very handy for me (pacman is used by both Arch and msys2). Finding and installing packages like assimp, sdl2, opencl, etc. is very convenient, and everything (I note that there are fewer packages in msys2, but enough for development) works without problems. msys2 is a fork of cygwin, but more democratic (in my opinion, in terms of licensing), albeit a truncated one. Clion, although not free, is a good cross-platform IDE for a beginner like me. I really like cmake, the assembly of my program works without problems both under windows and linux. Went through vimtutor and that was enough for git submit . . Of course, change DirectX to OpenGL and OpenCL and look at OpenMP. Good luck.

Didn't find what you were looking for?

Ask your question

Ask a Question

731 491 924 answers to any question