Followers 0

# Best Multiplatform IDE?

## 28 posts in this topic

This is probably a repost, so sorry about that.

Right now I'm trying to find the best multiplatform solution and I keep getting a bunch of mixed answers from Google searches. I've decided to download and develop on Ubuntu so I can test the multiplatform capability between the Ubuntu half of my computer and the Windows half, that way I'll pretty much know that my game runs on at least two different OS. So I've narrowed it down to a couple Linux IDEs:

*Code::Blocks, which I've tried before but didn't really like... not sure how good it really is

*Eclipse (at least the C++ specific version), but I hear it can become pretty slow since its Java based (same for NetBeans)

*Qt Creator, which I've heard a lot of good things about but it makes me nervous that its based around a specific SDK

I just wanna make sure from the get go that my IDE won't leave me hanging somewhere later close to release. I narrowed it down to these three because they all had relatively good things said about them and each seems pretty close to having a working version of Clang ready for them which seems invaluable for the debugging process. Is there something I'm missing, or should I just suck it up and straight up use vim with the normal GCC compiler and just do everything by hand because I'm so paranoid XD

0

##### Share on other sites

You don't really need a multiplatform IDE, you could just pick the CMake build system which can generate project files for Visual Studio, Makefiles and a bunch of other editors and build systems. Qt Creator can even read CMakes directly. And you can definitely use Qt Creator for non-Qt stuff.

PS: emacs rocks.

Edited by patrrr
2

##### Share on other sites

You don't really need a multiplatform IDE, you could just pick the CMake build system which can generate project files for Visual Studio, Makefiles and a bunch of other editors and build systems. Qt Creator can even read CMakes directly. And you can definitely use Qt Creator for non-Qt stuff.

PS: emacs rocks.

Okay that's a little relieving, I might take at least a look at Qt Creator then. I've sort of made a vow to get away from Microsoft products, because I'd really like to get into and support the good open source tools out there because... realistically indie gaming would be very lost without them.

What's emacs like? I've heard it compared to vim (which I know little about), is it basically the same thing? Like just a text editor but... not?

0

##### Share on other sites

It's also a good idea to learn different ways of doing things just to get a broader perspective. Also, spreading your skills over a greater number of technologies makes sense as a security measure/future-proofing.

In that regard, I guess emacs is like vim. Without the hassle of modal editing, and better customization I guess. But it takes time to become fluent in emacs.

0

##### Share on other sites

*Code::Blocks, which I've tried before but didn't really like... not sure how good it really is

Just out of curiosity, what did you not like about it? Maybe you have encountered some of the more buggy builds.

I have used it for quite a few years for cross-platform development and, compared to the alternatives, I find it more flexible/low-level (you can customize about anything, including its build process) and "light-weight" (always responsive and you can trim any fat/plug-ins).

For beginners, there are IMHO better alternatives, such as QtCreator, which I find it too bloated (do not get upset - just my opinion).

Of course, you have to switch IDE (try out the others) from time to time anyways to form an updated opinion (which I do every few years).

BTW. If you have used CB nightly builds (and you almost have to if you want an updated version), especially those from 4-6 years ago, there are always bound to be some more-or-less buggy builds. If I encounter such buggy build, I just report the bug(s) and step one version down until the next build is released (and usually they have fixed the bug(s) by then).

0

##### Share on other sites

QtCreator is the slickest free multi-platform IDE I've seen in a long time.  It's fast and responsive, easy to install and learn, and works the same everywhere I've run it.  It even has a vim mode for its text editor.

It's a matter of personal choice.  If you truly want a free development environment that feels and works the same on POSIX (Mac OS X, GNU/Linux) and WSA (Microsoft Windows) you should either choose emacs/vim or QtCreator.

Thank you for this post. I was actually starting to feel punked because I was reading the tutorial that comes with emacs and kinda... under appreciating it I think. I mean, I'm twenty something, so every computer I was old enough to remember using had Microsoft Notepad included so, to me, emacs just seems like a really... bad text editor. I guess instead of reading the basic text editor tutorials I should maybe look up specific stuff, like how to use it to make C++?

Either that or just use Qt Creator since I don't really see how it would hurt me, at least with the main production process which will definitely be the hardest part I imagine. As long as I can eventually port it to the main trinity of OS without much of a headache I think I'll be happy with that.

0

##### Share on other sites

Thank you for this post. I was actually starting to feel punked because I was reading the tutorial that comes with emacs and kinda... under appreciating it I think. I mean, I'm twenty something, so every computer I was old enough to remember using had Microsoft Notepad included so, to me, emacs just seems like a really... bad text editor. I guess instead of reading the basic text editor tutorials I should maybe look up specific stuff, like how to use it to make C++?

Can you play Tetris, Snake, etc. in Notepad? Nope, but you can in Emacs (for example, M-x tetris (that is, Escape, press x, then type tetris). Just a small sample of Emacs. If you watch someone who really knows Emacs, it's like watching someone do magic.

Either that or just use Qt Creator since I don't really see how it would hurt me, at least with the main production process which will definitely be the hardest part I imagine. As long as I can eventually port it to the main trinity of OS without much of a headache I think I'll be happy with that.

I'd personally suggest using Qt Creator. Emacs is cool and all, and I use it (in addition to Xcode and Visual Studio), but unless you really want to get into the Linux/GNU/Open source/Command line-type world, you probably won't get as much out of Emacs as you would a more visual/GUI-type IDE, like Qt Creator.
0

##### Share on other sites

*Code::Blocks, which I've tried before but didn't really like... not sure how good it really is

Just out of curiosity, what did you not like about it? Maybe you have encountered some of the more buggy builds.

I have used it for quite a few years for cross-platform development and, compared to the alternatives, I find it more flexible/low-level (you can customize about anything, including its build process) and "light-weight" (always responsive and you can trim any fat/plug-ins).

For beginners, there are IMHO better alternatives, such as QtCreator, which I find it too bloated (do not get upset - just my opinion).

Of course, you have to switch IDE (try out the others) from time to time anyways to form an updated opinion (which I do every few years).

BTW. If you have used CB nightly builds (and you almost have to if you want an updated version), especially those from 4-6 years ago, there are always bound to be some more-or-less buggy builds. If I encounter such buggy build, I just report the bug(s) and step one version down until the next build is released (and usually they have fixed the bug(s) by then).

I can't really remember at this point, its been about half of a year since I used Code::Blocks. Generally it seemed like a cool idea, but I think its just because I was coming down from a long experience of using Microsoft Visual Studio which... pretty much holds your hand the entire time. Maybe I'll have to take a look at it again.

If you know of any tutorials or guides to how to use Code::Blocks effectively, I might take another look at it. I think generally it was just a lot of information overload.

0

##### Share on other sites

I'd like to offer a slightly different perspective: I've never been a fan of monolithic IDEs, whether obscenely visual or arcanely textual.

I pretty much exclusively develop with a tabbed text editor alongside a tabbed terminal window (interspersed by the occasional browser or file browser), all with a liberal dose of alt-tab'ing back and forth.

It does take a little while to develop such a freeform workflow, but the flexibility you gain is well worth it, in my book...

1

##### Share on other sites

I also like QtCreator. QtCreator doesn't tie you to the Qt api (but has built-in Qt wizards if you want to use them). However, it does sorta tie you to their own 'make' tool, called QMake (which produces make files for GCC's make). You can use something like CMake if you want to though, but I personally like the QMake .pro files.

QtCreator is a very good IDE. It only has syntax highlighting for C++ (and a few other Qt-related things like the QMake files), but afaik it lacks support for other languages.

0

##### Share on other sites

I'd like to offer a slightly different perspective: I've never been a fan of monolithic IDEs, whether obscenely visual or arcanely textual.

I pretty much exclusively develop with a tabbed text editor alongside a tabbed terminal window (interspersed by the occasional browser or file browser), all with a liberal dose of alt-tab'ing back and forth.

It does take a little while to develop such a freeform workflow, but the flexibility you gain is well worth it, in my book...

I was definitely considering this. What exactly do you use specifically? I might take a look at doing it that way, might be a good learning experience at the very least.

I also like QtCreator. QtCreator doesn't tie you to the Qt api (but has built-in Qt wizards if you want to use them). However, it does sorta tie you to their own 'make' tool, called QMake (which produces make files for GCC's make). You can use something like CMake if you want to though, but I personally like the QMake .pro files.

QtCreator is a very good IDE. It only has syntax highlighting for C++ (and a few other Qt-related things like the QMake files), but afaik it lacks support for other languages.

On Ubuntu I found it in the software center with a thing to include CMake instead of (or in addition to) QMake. Is there benefits of one over the other? Or does QMake just happen to be the default because its made to work with the IDE, but essentially they're the same?

0

##### Share on other sites

CMake and QMake serve the same purpose. There are others as well, but I don't have much experience with them.

A 'makefile' is a file that says what files are needed to make the program, and then you have a Make executable (GCC's being the most widespread) that reads the makefile and then builds each file using whatever tool is needed to build it. You can tell Make to compile files with the .cpp extension using GCC, or using Microsoft's compiler, or using another compiler. You can tell it to 'compile' .png files using your own command-line tool, to pre-convert the .pngs to powers of two textures, or to another format. Things of that nature.

CMake and QMake exist to add additional features to GCC's make, and generate GCC makefiles, as well as provide a more user-friendly syntax.

They use their own files and syntax, and when executed, generate makefiles and then execute GCC's make on those makefiles. (Or they can generate other files, like Visual Studio project files).

Unless you have personal preference or a project requirment to use CMake over QMake, I'd just use QMake. Better support in the Qt tools. But even without third-party support, QtCreator supports CMake (though you have to install CMake separately).

As someone inexperienced with makefiles, I find QMake files easy to understand and easy to edit, though they are less powerful/flexible that GCC makefiles, being focused purely on C++. I don't know if QMake files can, for example, tell your .png files to become power-of-two textures by calling your own command-line tools - but I never tried, so the feature may be in there somewhere.

Here's the complete (and rather large) QMake .pro file from my current game project, so you can get an idea for the QMake syntax:
http://ideone.com/kCMua3 (It's not naturally that organized - I manually edit the .pro file to organize it)

Edited by Servant of the Lord
1

##### Share on other sites

I pretty much exclusively develop with a tabbed text editor alongside a tabbed terminal window (interspersed by the occasional browser or file browser), all with a liberal dose of alt-tab'ing back and forth.

I was definitely considering this. What exactly do you use specifically? I might take a look at doing it that way, might be a good learning experience at the very least.

Sublime is my go-to text editor - it's even managed to replace ViM for my day-to-day editing tasks, and that's saying something. The $70 price tag may seem a little steep, but it's far and away the best GUI text editor on the market at this point, and one license lets you run it on as many computers/OS's as you like (plus you get access to the beta for Sublime 3, which adds symbol indexing, and a host of other improvements). I tend to use CMake -> makefiles from the command line for compiling. Debug with gdb on the command line too, but many people find this too arcane. There is always DDD, or the graphical debugger of your choice. 0 #### Share this post ##### Link to post ##### Share on other sites CMake and QMake serve the same purpose. There are others as well, but I don't have much experience with them. Unless you have personal preference or a project requirment to use CMake over QMake, I'd just use QMake. Better support in the Qt tools. But even without third-party support, QtCreator supports CMake (though you have to install CMake separately). As someone inexperienced with makefiles, I find QMake files easy to understand and easy to edit, though they are less powerful/flexible that GCC makefiles, being focused purely on C++. I don't know if QMake files can, for example, tell your .png files to become power-of-two textures by calling your own command-line tools - but I never tried, so the feature may be in there somewhere. Here's the complete (and rather large) QMake .pro file from my current game project, so you can get an idea for the QMake syntax: http://ideone.com/kCMua3 (It's not naturally that organized - I manually edit the .pro file to organize it) Thank you for your explanation and example, I already knew a little bit about makefiles but I think I really get the idea now. I'll probably just roll up my sleeves and try to learn CMake, sounds like in the end it will be a little more useful to me even if QMake is easier. Sublime is my go-to text editor - it's even managed to replace ViM for my day-to-day editing tasks, and that's saying something. The$70 price tag may seem a little steep, but it's far and away the best GUI text editor on the market at this point, and one license lets you run it on as many computers/OS's as you like (plus you get access to the beta for Sublime 3, which adds symbol indexing, and a host of other improvements).

I tend to use CMake -> makefiles from the command line for compiling.

Debug with gdb on the command line too, but many people find this too arcane. There is always DDD, or the graphical debugger of your choice.

I'm running on a zero dollar budget, so $70 even for the best thing ever isn't gonna happen. Although, maybe for my second game project, I'll finally be able to afford it xD For now I'm gonna try to use Qt Creator and since I've heard some good things about it I've got Geany in my back pocket which sounds like a good free alternative to something like Sublime. Gonna take a look at that debugger though, sounds interesting. 0 #### Share this post ##### Link to post ##### Share on other sites I haven't used Qt Creator extensively so I don't comment on it, but I have used Eclipse a lot, so in case it helps, here's my thoughts about it. Advantages: * The syntax highlighting is better than Visual Studio and supports more styles, plus Doxygen comment coloring. * Code completion seemed good enough. * You get free refactoring tools for C++ without having the shell 200$ for a lame commercial plugin. (Refactoring also happens in realtime in the editor which is pretty cool.)

* You can auto-generate your method stubs from a class definition. (If you can do that in VS I don't know how.)

* You can auto-generate getter and setters for the attributes of your choice..

* If you work with others, you can force coding conventions. (For example, we never use camelCasing where I work, but we hired an ex-Java guy who wrote all his methods like that. Eclipse immediately underlined his methods in red.)

* CppUnit integrated, if you're the type who'd rather spend hours write test than spend them debugging.

* If you program in any other language, chances are that there's a plugin for it too. (Python, Ruby, JavaScript, PHP, Objective-C, Java, you name it!)

* You can hold CTRL to make all your symbols turn into links and you can click on them to navigate through your code base.

* It has A LOT of plugins, and most of those are free. (In fact, plugins are what makes Eclipse what it is.)

* Tons of useful features for backup and source control, like git/svn/etc. plugins and export/import to zip.

* Debugging seems a bit lacking and the default interface looks confusing, even in Java. Plus it's slow. (Or maybe I'm just spoiled by Visual Studio.)

* It uses Java so you need the Java runtime. It's not incredibly slow and you probably won't notice unless debugging or refactoring though.

* The workspace-based project management system is confusing. Basically you pick a folder (which is by default NOT in your Documents folder) and all your Eclipse projects have to be there.

1

##### Share on other sites

* You can hold CTRL to make all your symbols turn into links and you can click on them to navigate through your code base.

This was the single feature that kept me using Eclipse for so long, despite its clunky interface and bloated processor/memory requirements.

1

##### Share on other sites

I have to agree. Eclipse is by far my IDE of choice. Not just for C++ but a plethora of other languages as well. Works on Windows, Linux, and Mac. It's super easy to use. It's open source (which is super cool). It has a ton of excellent plugins, a lot of support, and they are constantly rolling out new versions.

Eclipse is definitely the safe bet. Also, it's free.

0

##### Share on other sites

* You can hold CTRL to make all your symbols turn into links and you can click on them to navigate through your code base.

This was the single feature that kept me using Eclipse for so long, despite its clunky interface and bloated processor/memory requirements.

QtCreator has that too. Ctrl+Clicking a function name switches between the definition and the declaration, Ctrl+Clicking a variable name brings you to that variable's creation point, Ctrl+Clicking a variable type brings you to the declaration of a that type. I agree that it's very useful!

0

##### Share on other sites

Here's one more vote for QtCreator + CMake.

I've been using it on my project and it's pretty nice, and easy to learn too. I actually had problems using Qmake (.pro) files, and have had no problems whatsoever since the switch to CMake. It also makes it pretty easy to divide your project into submodules/libraries that it will almost automatically link to your final binary.

Using CMake has lots of advantages too, like:

• generate project files for major IDEs
• configure system to enable/disable features at build time
• easy to configure the builds for each OS
• lots of documentation online
• really fast
• detects modified files and only recompiles what's needed

And probably a lot more I can't remember right now.

1

##### Share on other sites

I just wanna make sure from the get go that my IDE won't leave me hanging somewhere later close to release. I narrowed it down to these three because they all had relatively good things said about them and each seems pretty close to having a working version of Clang ready for them which seems invaluable for the debugging process. Is there something I'm missing, or should I just suck it up and straight up use vim with the normal GCC compiler and just do everything by hand because I'm so paranoid XD

What's this about "sucking it up and using vim and gcc"? It's one of the best text editors around, and you aren't tied to any particular compiler with it either.

I'm a long time vim user for general text editing, but have never taken the time to properly set it up for C++ development because I have been essentially forced to use VS and other IDEs at work. This thread finally kicked me to action. So I spent a few hours trying out a bunch of plugins, booting out ones I didn't like, and wrote my configuration from scratch. The result is that I have the clang_complete plugin automatically running clang in the background, offering namespace and object member name completions as I type, and popping up syntax error highlighting with error and warning messages. ("Pretty close" for some other IDEs? Here today for vim.) I can jump to definitions with vim's built in tag support and ctags; vim has had that particular capability from the beginning since it was a vi feature. You can also click on stuff with a mouse to jump to definitions; I think that became possible in 1996 when vim first got a GUI.

I have used a little bit of Qt Creator and Eclipse, and used Visual Studio for years to do paid work, and the actual editors on all of them are honestly pretty bad compared to vim. VS became more bearable by using a paid plugin for the Professional edition, but still not good.
1

##### Share on other sites

What's this about "sucking it up and using vim and gcc"? It's one of the best text editors around, and you aren't tied to any particular compiler with it either.

You have to keep in mind, I'm twenty two. Windows 95 was the first OS I used as a kid and have only used later installments of Windows until now. When I see vim, or emacs, I see a more complicated version of Notepad XD I know that they're still the best text editors probably, since you can basically customize IDE-like processes to your exact needs, but... idk. I was reading the tutorial for emacs and felt kinda punked. To my mind, having never been taught or learned as a kid/teen how to use vim or emacs, it seems a lot simpler to just do everything in a Notepad like editor and have the terminal up near by... even if it is an extra click or two.

If anyone's curious, I've basically decided to go the route of no IDE... at least until I can find something that works. Qt Creator confused me, if only because it seems to make the CMake file in a weird way but on the other hand... probably just need to learn CMake in general. Right now I'm using the default Ubuntu text editor (like gedit or something) which I hear you can customize too (and it seems to have minor syntax highlighting by default). Want to eventually get into Vim or Emacs, or maybe take a swing at something like Geany which seems to be a minimal IDE or try Qt Creator again after I know some of the basic concepts of developing on Ubuntu.

Thanks again for everyone's advice, I learned a lot from this discussion :D If you can give further advice or maybe some tutorial links on Vim, Emacs, Qt Creator, or general terminal based development, that would be appreciated.

0

##### Share on other sites

Right now I'm using the default Ubuntu text editor (like gedit or something) which I hear you can customize too (and it seems to have minor syntax highlighting by default).

There is a special place in my heart for gedit - a dark place, for one of the most useless programmer's text editors ever devised ;)

0

##### Share on other sites

To my mind, having never been taught or learned as a kid/teen how to use vim or emacs, it seems a lot simpler to just do everything in a Notepad like editor and have the terminal up near by... even if it is an extra click or two.

These editors have a certain level of knowledge that you need to gain before you can use them. It's really not that much info at all, but it feels like a lot because, in addition to learning, it takes practice using something that might seem bizarre at first.

Once you understand something like vim, those "simpler editors" become too simple, way too simple. e.g. I used to not care about moving around text with the arrow keys, but now I feel crippled without an edit mode.

I recommend reading this post on understanding vim: http://stackoverflow.com/questions/1218390/what-is-your-most-productive-shortcut-with-vim/1220118#1220118

1

## Create an account

Register a new account