Looking for C++ IDE

I studied C++ a long time ago and have recently wanted to get back into it. But I'm sure a couple of decades have a way of changing things.

I'd like to poise myself to be able to write C++ programs in all platforms (i.e., Windows, Linux, MacOS). Is there such an IDE that can run across all these platforms? Because if there is, I am just trying to cut down the learning curve.

But realistically, I will most likely be writing C++ applications on the Windows Platform using the graphical environment (as opposed to a command line application).

Any feedback would be greatly appreciated. Thanks.
Who is Participating?

[Product update] Infrastructure Analysis Tool is now available with Business Accounts.Learn More

I wear a lot of hats...

"The solutions and answers provided on Experts Exchange have been extremely helpful to me over the last few years. I wear a lot of hats - Developer, Database Administrator, Help Desk, etc., so I know a lot of things but not a lot about one thing. Experts Exchange gives me answers from people who do know a lot about one thing, in a easy to use platform." -Todd S.

Eclipse will work on all platforms. In Windows however I prefer Visual Studio.
elepilAuthor Commented:
chaau, thank you for your response. But will Eclipse work with Windows graphic libraries? I remember back then, they called it MFC (Microsoft Foundation Class libraries), but I don't know what they call it today. Can Eclipse work with that?
I think the only IDE that supports MFC is VS. Please note that MFC applications will not be cross-platform. They will only run in Windows. For a cross-platform applications you need to use something like Qt. BTW, the MFC has the worst resource editor (even when comparing with other MS products like C# or VB.Net)

Experts Exchange Solution brought to you by

Your issues matter to us.

Facing a tech roadblock? Get the help and guidance you need from experienced professionals who care. Ask your question anytime, anywhere, with no hassle.

Start your 7-day free trial
Python 3 Fundamentals

This course will teach participants about installing and configuring Python, syntax, importing, statements, types, strings, booleans, files, lists, tuples, comprehensions, functions, and classes.

For a cross-platform applications you need to use something like Qt.
yes, qt is more than an ide but mostly a class library for graphical user interfaces. it is fully portable between the main desktop platforms. you also can develop qt projects in visual studio ide.

for a client-server application where the server is on a unix and the gui is windows, you could use visual studio for both. sources for the server you could automatically transfer to the unix and make the build there. i usually had an eclipse there for debugging purposes and for to creating new sources for the server.

you also can compile and build the server sources in vs (firstly or additionally) since c++ code can be made highly compatible between platforms and major issues only are to expect when using foreign proprietary libraries.

elepilAuthor Commented:
Sara and chauu, both of you mentioned Qt, something I've never heard of. I did a google search on it, and it does sound like what you both described -- an IDE and a library. But it is also expensive, like $350/month, so that's out.

I'm just trying to relearn C++, and I do want to develop GUI applications. Is MFC my only practical choice then? Qt looked real good, but $350/month is a bit hefty for my needs right now.
But it is also expensive, like $350/month, so that's out.
the prices for a perpetual license are:

Per developer prices, in Euro:

Qt Single OS – 2.995,-
Qt Multi OS – 4.195,-
Qt Single Embedded – 4.795,-
Qt Multi OS Embedded – 5.595,-
Qt All OS – 6.395,-

All licenses comes with 12 months of support and maintenance
included. The license itself is perpetual, so you can use it for as
long as you want to.
However, the access to support is renewable every 12 months, to
maintain the access to support and updates of newer versions of Qt,
when they are released.

Open in new window

I'm just trying to relearn C++, and I do want to develop GUI applications.
you could start with a non-commercial license then. it is free. also a 30-days trial is free.

Is MFC my only practical choice then?

if you want to develop windows clients and don't intend to go to managed c++ (c++.net) mfc is the best choice in my opinion. managed c++ actually is a new language with c++ syntax. it is based on .net and its output isn't c++ object code which could be linked to an executable but is intermediate code that was interpreted and executed at runtime on the target machine. the intermediate code also could be provided by c# and vb.net projects. because of that managed c++ is supposed to be a choice for c++ developers who wanted to go .net but not learn a new language from scratch. but since the same group of developers also could go c# managed c++ wasn't used by many developers.

using mfc means that your gui clients will run at windows platform. that is because mfc is a class library which wraps original windows api. of course it makes no sense to port a library which is based on a proprietary gui api to another platform. libraries like qt go another way. they have their own classes and have internal libraries specific for each platform. these libraries were using the original windows api and therefore mfc is neither used by them nor do the class libraries have compatible concepts to mfc.

you need at least standard edition of visual studio to get mfc included. or, you download visual studio community which is free and also included mfc.

elepilAuthor Commented:

Thank you for your response, it enlightened me in more ways than one. I did expect Qt to use something similar to a JVM in Java; otherwise, how else could it run on multiple platforms, and I learned it is called managed C++.

But you said:

it is free. also a 30-days trial is free.

That confuses me a bit because you made it sound like they have a totally free version just like Microsoft has a VS Community version that is always free as well as versions that give you only 30 days of free trial? Or am I misunderstanding you? Thanks.
actually if you agree on the GPL/LGPL conditions qt is free.

expect Qt to use something similar to a JVM in Java; otherwise, how else could it run on multiple platforms

qt is pure c++ library and has same c++ code on all platforms (means you can move the code and qt settings to any other environment). internally qt uses platform specific libraries. some gui elements which are not fully compatible between platforms (for example widgets) were implemented by qt itself and have most possible equality in look and feel.

I learned it is called managed C++.
managed c++ is part of the .net language family (with c#, vb.net) and has only syntax in common with c++. in my opinion the only real benefit is that you could have a mixed assembly where you use both managed and native c++ code. but even that isn't an easy thing though microsoft calls it IJW (it just works).

the visual studio ide has good editors and a useful project management. by customization you could add any precompiler, compiler, build tool individual for projects and even single sources. as told i used it to deveop unix sources and compiled it at windows platform. finally i made the build at the unix side. of course this doesn't work with gui elements since those are not compatible (beside you were using some cross-platform tool like qt or rogue wave views or others - mostly elder libraries).

madunix (Fadi SODAH)Chief Information Security Officer Commented:
For Linux, Fedora already include:

- Eclipse w/ CDT: yum install eclipse-cdt
- Anjuta: yum install anjuta
- KDevelop: yum install kdevelop
- QTCreator: yum install qt-creator
- Code::Block:  yum install codeblocks
- Netbeans w/ C/C++ plugin: yum install netbeans
elepilAuthor Commented:
Qt it is. Thank you for your help, both of you.
It's more than this solution.Get answers and train to solve all your tech problems - anytime, anywhere.Try it for free Edge Out The Competitionfor your dream job with proven skills and certifications.Get started today Stand Outas the employee with proven skills.Start learning today for free Move Your Career Forwardwith certification training in the latest technologies.Start your trial today

From novice to tech pro — start learning today.