Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
Questions asking us to recommend or find a tool, library or favorite off-site resource are off-topic for Stack Overflow as they tend to attract opinionated answers and spam. Instead, describe the problem and what has been done so far to solve it.
Closed 9 years ago.
Improve this question
I want a portable C++ IDE for general development, and too to develop basic Windows GUI applications.
In my research, I've found this (with latest version date):
CodeLite IDE (2010-04-02)
Ultimate++ (2010-03-16)
Qt Creator (2010-02-01)
NetBeans (2009-12-10)
Code::Blocks (2008-02-28)
Bloodshed Dev-C++ (2005-02-22)
But I don't know if some these IDE's supports Windows GUI development (or Cross Platform GUI development) or if can be portable (NetBeans can be portable).
EDIT: Reading the replies and doing more research, I'm near to choose between NetBeans or Qt Creator. But Qt Creator is 287mb (big for portable development). So sad looks that NetBeans, even being small (c++ is near to 30mb) needs Qt library for GUI (278mb)...
Qt Creator is a good choice if you want to code cross platform GUI programs.
Qt is an excellent cross platform GUI library.
The bash shell (and it's tools) + vim + cmake + mercurial = love. Bash is available on all popular platforms, even windows
p.s., I forgot gdb + ddd.
The IDEs you named are all cross-platform and available on Windows, Mac OS X, and Linux. That said, you only really need to make your code cross-platform (use Boost and Qt to do that). I personally use Xcode on Mac OS X, GEdit or Anjuta or KDevelop on Linux, and Code::Blocks on Windows. You might also be interested in my C++ Application Project Template and C++ Library Project Template, which provide a portable cross-platform build using the CMake build system, and which uses both Boost and Qt; the application project template already has code to create a "hello world" GUI if you use the flag "--gui".
I should also point out that CMake is capable of generating project files for a wide variety of IDEs, so an advantage of a CMake build is that you can generate makefiles (the default), but you can also generate a Visual Studio project (Windows), a KDevelop project (Linux), or an Xcode project (OS X) from just the one project description file, allowing one to use the native IDE for that particular development platform.
You can make a portable NetBeans, as well as Code::Blocks, Geany, Dev-C++, or Eclipse.
Any of the above should be able to do Windows GUI or cross-platform GUI development, just make sure you have a copy of all necessary libraries on your flash drive. If you use portable Cygwin on the flash drive, you can include gcc (so your IDE has a compiler as well) and the cygwin versions of a variety of UI libraries (gtk, FLTK, wxwidgets, qt, etc etc).
An alternate route that I have seen some people take is to load up a Linux installation in a virtual machine, then carry that around on the flash drive along with something like Portable VirtualBox. I would recommend copying it to the hard drive first, the performance would be terrible running it straight off the flash drive.
Have you considered Vim. Not exactly an IDE but you could easily put versions on one USB stick to allow you to run anywhere.
For some things I like Eclipse but it is only portable in your sense if Java is installed on the host machine. The other big problem with Eclipse is that it is fairly machine demanding and in my opinion requires a fast SMP machine to work well. Frankly though I don't use Eclipse for any of the "C" languages right now.
A slightly tougher choice might be EMACS again using the same approach as with Vim. That is putting multiple copies for your different target machines on a USB stick.
In the end I have to second something else suggested, that is the best portable IDE is a laptop. For example you can have several very good IDEs installed on a Mac and easily transfer files to a target machine. Being Unix it is fairly easy to install the GCC or LLVM of your choice even cross compilers. The big problem with a USB dongle approach is that you never can be sure of having everything you need there.
Xemacs. If you want something that you can keep on a flash drive with a ton of other tools. It isn't full features, but sure is a step up for writing software than vim.
Well, it doesn't have a portable version, but as a general and multi-platform IDE, I would definitely go with Komodo Edit. I love the autocompletion and call-tips features. They boosted my coding speed and productivity by 1000x. I know I sound like an ad, but don't worry, it's my most sincere opinion.
If you want cross-platform development, I agree with whoever mentions Qt. It's a really great, reliable (depends on your requirements, of course) and flexible cross-platform framework.
Good luck!
Related
Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
Questions asking us to recommend or find a tool, library or favorite off-site resource are off-topic for Stack Overflow as they tend to attract opinionated answers and spam. Instead, describe the problem and what has been done so far to solve it.
Closed 9 years ago.
Improve this question
I've learned C and C++ in Borland's Turbo C++ IDE, the 16-Bit version with that old blue screen background, in which I started off building console programs for Windows. Now that Windows Vista and 7 doesn't support that IDE to be run in full-screen mode, I'm looking for such similar IDE (not necessarily from Borland), that comes with GCC, and doesn't need much learning to use if one has already worked with Turbo C. So is there any free GCC IDE that works with Windows 7? I'll not be using it for developing Windows applications, since I need it to practice on data structure console programs.
Turbo C++ is very old, and the concepts and philosophies of IDE design as (as well as the language C++ compilers are compiling) have developed much further since.
You might try Code::Blocks or Eclipse, but I wouldn't expect a transition as smooth as going to the next version of Turbo C++. (Which weren't as smooth either, BTW. The latest of that series, BCC 5.0 was quite different to the old DOS TC environments, and even that got abandoned later in favor of the very different C++ Builder IDE.)
BTW, does it have to be GCC? Visual C++ Express is free also, the VC compiler isn't worse than GCC, and the IDE is quite good.
There are a few C++ IDEs with many features.
Bloodshed Dev C++
NetBeans C
C++ IDE
Eclipse CDT
CodeBlocks
Also take a look at Cygwin which provides a linux like environment for Windows. If you are making console applications, using a good shell won't hurt.
An open source IDE that runs on Windows that should get more mention than it currently does is QtCreator. While it's tailored to working with the Qt framework, it works just fine for non-Qt-based C++ work (though you won't get much help in the form of UI wizards unless you're using Qt for the UI).
It's much lighter than Eclipse/CDT and I find it easier to use (though I normally use Visual Studio over either QtCreator or Eclipse/CDT).
General information/marketing for QtCreator: http://qt.nokia.com/products/developer-tools/developer-tools
Nokia provides a Windows package that includes the MinGW GCC compiler. Go to the download page and select the "Qt Creator 2.1 Binary for Windows" link (I have no idea why Nokia doesn't link to the download from the info page): http://qt.nokia.com/downloads
Of course if you just want a free C++ IDE for Windows, and don't really care if it's GCC or MSVC based, I'd suggest getting VC++ Express: http://www.microsoft.com/express/Windows/
If you're looking for a beer-free IDE, just download Visual Studio Express from Microsoft - it's not gcc behind the covers but it is tuned very well for Windows.
If you're after a speech-free one, Code::Blocks is the best I've ever seen. The larger setup package for Windows includes the backing gcc compiler and gdb debugger.
You can use codeblocks: http://www.codeblocks.org/
It is not a console IDE but you can build console programs and watch the output in a window.
The best solution if you are using windows is CODEBLOCKS-EP(Education Portal).
You can find it at http://codeblocks.codecutter.org/
Once you find it, I would personally recommend the "Zip (CodeBlocks-EP.zip)" file download.
Hope this helps.
Happy Coding
I can suggest you Eclipse ID with CDT (you can download bundle from http://eclipse.org) + MinGW compiler tool. Or You can use the Code::Blocks IDE.
I like Bloodshed Dev-C++, but I don't know if it runs on W7.
I suggest using CodeLite opensource cross platform IDE for the C/C++ programming languages:
It works great on almost all Operating Systems
Windows XP/7 and 8
Debian / Ubuntu
Fedora / OpenSUSE
Mac OSX 10.5.8
http://codelite.org/
I was reading today question on IDEs fo C++, and there are very good ones like Netbeans.
My question is about creating a software in C++ on Windows Environment, but let users install and run my software also on Linux and OSX.
Does netbeans has a compiler to do the job, or is there any good IDE which has a compiler for targeting my c++ code to these other environments?
thank you
QtCreator. It's awesome, slick and everything.
While it is not as feature rich as some competitors, it does many things just right that others don't.
I would say it is the one truly cross-platform IDE that is competitive to single-platform solutions. And it comes with tight integration of a very powerful and clean cross-platform toolkit. Something that you need for most cross-platform applications by itself.
I use Eclipse CDT and have had some degree of success. But I'm a Java programmer, so it's what I'm used to. It's worth checking out, and the extensions are quite cool.
Many people like Code::Blocks and it is cross-platform, with integrated debugging, code completion, etc. Qt Creator is also good and at least still very minimalistic.
Without a doubt VisualStudio with gnu make.
I've found Visual Studio to have the best IDE for C++. In addition, it's debugger and the way it handles multi-threaded applications is excellent.
And you can tweak the properties for your project to use different compilers and compiler flags of your choice, so it can build to any target.
You're talking about cross-compiling as GMan said, that's a compiler job, not IDE's and itu's kind of hard to make C++ software that runs well on Linux/Windows/MacOSX, C++ isn't a cross plataform language beacuse of its ABI, so you should try to use C++ standart code.
If you're making a consloe application there's no much problem just be care not to use system interface, but if you're planning to do some kind of graphics app then C++ it not the better choice for your purpose. Try some design that split the view from the controller/model of the app.
You can use QtCreator or NetBeans. First on C++ secord on Java. Both use MinGW g++.
Just a thought: you don't need to use a single IDE for all platforms. It is very common, for example, to use Visual Studio on Windows and Xcode on Mac OS X for cross-platform projects. I'm not familiar with Linux IDEs thought so couldn't recommend anything there.
Write makefiles for each OS? Simple enough seems to me.
Concerning cross plattform development it doesn't make a difference which IDE you use. Just make sure you use a cross platform (and possibly IDE independent) build system like SCons or cmake.
I have a friend who is trying to make the switch to Linux, but is hung up on the apparent lack of debugging/IDE environments for C++, especially as they relate to template programming. He has been using visual studio for years and is maybe a little spoiled by their awesome IDE. Does anyone have any good suggestions for an environment where he can, under Linux, develop and debug with all of the usual things (Breakpoints, line highlighting for compilation errors, step in/over/out/etc, etc) that he's accustomed to? Thanks!
How about Eclipse + CDT ?
Although many people think of it as a Java IDE, he could try NetBeans. I've used it on Windows for C and C++ development without a problem, and I know NetBeans is supported on Linux, so it would be worth a shot.
It looks like most of the features he wants are included in the C/C++ development toolkit, including integration with GDB, a profiler, and more.
Visual Studio is good, indeed.
On the free side:
Qt Creator is getting quite good too, it's worth a try. There are advantageous by-products coming from the Qt framework:
huge library - not only to build GUI applications but for other domains as well
portability on multiple platforms
A version 1.3 beta is available as a preview of the upcoming release but the current 1.2.1 is already all you need to manage projects.
Eclipse has already been mentioned, it's a very good environment offering many plug-ins (Mylyn, SVN, ...).
MonoDevelop somewhat supports C++ (more and more, I didn't check the latest version).
I've used Eclipse for C/C++ and it's pretty useful. It's also used at ACM ICPC World Finals http://cm.baylor.edu/welcome.icpc
I'd recommand Code::Blocks (but use a nighty build). It can be coupled with gdb to enable step by step debugging and all that stuff.
Not exactly an IDE but SublimeText 2/3 is available on Linux now. There may be a debugger plugin for it too, who knows.
Edit
Here's a gdb plugin for SublimeText
I havn't explored it personally, but Emacs has a C++ development addon that looks very much like a full IDE.
About 7 years ago I used KDevelop that was shipped with KDE. I found it quite good back than, and I hope it also improved with the time. I found it quite comparable to VC++ 6 at this time.
It also contains Qt support, if you are in need for some GUI toolkit.
Depends, Code::Blocks is good, Eclipse is very nice too, but you will need a very good computer. In my opinion the best choice iss gcc, gdb and ViM or Gedit.
My buddies from work use Eclipse + Scons, they also use Valgrind(spelling?) for tracking memory leaks and such.
Many of the IDE features you listed were debugger features. The ddd (Data Display Debugger) debugger is quite a nice GUI wrapper for gdb, allowing graphical representation of data structures, a non-crappy source listing window (ie. unlike the l command of gdb where you don't get context), and also allows you to use any and all native gdb commands directly if desired.
Have a look at CodeLite. It's available for Ubuntu and Fedora out of the box and even for Windows and Mac. So you can have the same IDE on different platforms.
We tried Eclipse and NetBeans but left them due to their huge CPU and memory usage. We have a development server and all the developers connect to it via RDC. Thats why these IDEs miserably failed in our model.
So, we looked for some native IDE. Found CodeBlocks to be very good and super fast. We sort of settled on it but later found CodeLite and liked it better than CodeBlocks.
I just seeing this question after 12+ years. AnyHow I just writing my answer. I personally use Quincy IDE for C and C++ development. it is very lite weight and debugging watch list is very much good and easy to use. I'm just attaching the link to the site. try it.
But you have to install it with wine.
Quincy <-- Click here
Closed. This question is opinion-based. It is not currently accepting answers.
Want to improve this question? Update the question so it can be answered with facts and citations by editing this post.
Closed 8 years ago.
Improve this question
I want to do some coding in my spare time, but the thing is, I don't want to spend the money on this.
Would the following set of development tools be The Right Thing, or is there something I'm forgetting?
Eclipse for C++
SVN for source control
Qt for UI development (since it's C++, and I believe it's now opened by Nokia)
hudson for continuous integration
I'd like to write a little image processing application that can run on any platform, but the main platform at the moment will be Windows with a possible movement to the Mac-- hence all the cross-platform tools.
Is there anything really obvious I'm forgetting? Like something like fxcop for style checking in C++?
If I use any libraries, I'd like to avoid GPL libraries; if things go south with my current employer, I'll want to monetize this.
Microsoft Visual C++ Express is free and easily the best IDE for Windows. Furthermore, you can use it to work on cross-platform code - it more depends on writing standards-adhering code and using portable libraries.
If you want to write cross-platform code, I recommend a cross-platform build tool. I use CMake, which generates Visual Studio solutions on Windows, but there are others too, such as SCons.
As for libraries, it depends on what exactly you need to do. Qt is an excellent GUI library. libpng/libjpeg and others are good for loading/saving images at a low level, but there are probably other higher-level image libraries as well.
[edit] A response to the comment about MSVC and Qt:
A quick search brings up Trolltech's Qt Visual Studio Integration page:
Qt Visual Studio .NET Integration
A comment points out that this is actually not free (a free addon is available at this link, but this runs Qt designer outside of Visual Studio. Also, the Express version of Visual Studio does not support plugins.
For coding specifically in Qt there is another new IDE created by Qt: Qt Creator. I've heard good things about it, and it is also portable across Windows, Linux, and Mac.
I detect procrastination (something I'm often guilty of) - just write some code - you can always add tools as you go along.
The problem with questions with phrases like "what's better" is that it's really hard to determine what's right in a specific situation and maybe impossible what's "better".
Said that, I use Eclipse CDT sucessfully as an IDE on Linux. I use frameworks like ACE/TAO to create code that is highly portable.
I know that QT is a very good UI framework. KDE is built on top of KDE and if you use KDE/Linux then you may also want to look at KDevelop, a C++ IDE that has many users.
In the end I believe that you and only you can figure out whats best for you to use. Make sure you check the alternatives and then make an educated decision.
for c++ there are a few more freewares available such as codeblocks and devcpp. I find eclipse very heavy on the machine.
There are many tools that make the difference:
A C++ compiler ... (it wasn't in your list)
doxygen
STLfilt (which is a must have when programming in C++)
A UT framework (CxxTests, boost.test, Fructose, google.test, ...)
something to manage the compilation chain (scons, aap, (b)jam, cmake, ...) -- I've no idea what eclipse is using.
Source control: git. It's not as diffucult as people make it seem. I'm an svn newbie and I still managed to learn the basics of git for use in everyday life! There are about 4 or 5 basic commands that will get you going in no time. Read the official git tutorial
Regarding IDE's, there are a few choices
Microsoft Visual C++ Express Edition (free lite version)
Eclipse with CDT
QtCreator. (Since you're using Qt for the GUI)
Personally I have used Eclipse+CDT for a number of projects. Paired with wxWidgets it has provided me with enough to keep myself pretty much crossplatform (which I think is a big plus).
Also QT has some interesting releases with an IDE now, make sure you check it out: http://www.qtsoftware.com/products/developer-tools
Like earlier suggestion, just start coding, you will eventually find out what is the appropriate mix for you. It varies greatly between individuals what is the "best" IDE or mix of command line tools, etc.
Eclipse CDT is making huge strides, and even organizations that were unx tools only are now finally joining the IDE bandwagon. Considering downloading a current milestone, not the official release.
If you're using windows, don't use Eclipse directly, find a third-party distribution that already has all the GNU tools in it (I forgot the name, I can look it up).
Once you switch to mac it's easier, but make sure to install xcode to get your GNU tools.
If you are using svn - VisualSVNServer is an excellent free GUI based way to setup and administer your SVN repository, definitely worth checking out as it means you have little/no messing about with config files etc. to change your repository.
Regarding version control - Subversion is pretty much standard and is very well supported. From what I've heard, Git is more powerful but harder to use; it's worth a look for a new one-man project, since you wouldn't have the support and retraining concerns that other projects would have.
Regarding IDE, since Visual C++ Express is currently the highest-voted answer - I've used both Eclipse and Visual C++ Express. I don't have a whole lot of experience with Visual C++ Express, so it might have features that I've overlooked, but from what I've been able to compare, Eclipse offers a lot more features. I tried to list its more impressive features in this answer; from what I've been able to see, Visual C++ Express doesn't have any of the features listed there. Eclipse is slower and more resource-intensive, but with a fast enough desktop, its extra features are more than worth it.
In terms of version control, use git and throw your project on GitHub or Gitorious. There's really no reason to use Subversion anymore, due to its painful branching and merging, and lack of a distributed model.
See this link here for why Git is better than X:
http://whygitisbetterthanx.com/
There's also no point in using Sourceforge or GNU Savannah, as the Git front-end sites have much more valuable features and are easier to use.
Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
We don’t allow questions seeking recommendations for books, tools, software libraries, and more. You can edit the question so it can be answered with facts and citations.
Closed 4 years ago.
Improve this question
I'm aspiring to work in real-time 3D graphics. I work almost exclusively in C++, with a healthy smattering of win32. Realistically, do I have any sane alternatives?
You can use the MSVC compiler without the IDE. That's probably your best bet. It's a good compiler, and it is the de facto standard for Windows development.
There is definitely nothing wrong with ditching the IDE and simply using the compiler.
I believe the MSVC compiler can be used from the Code::Blocks IDE with no problems.
Alternatively, invoking the compiler from the command-line is a tried and true approach too.
Eclipse: http://www.eclipse.org/
Code::Blocks is pretty cool: http://www.codeblocks.org/
Depends...
Cygwin/Mingwin gives you a compiler. Qt or wxWidgets gives you a GUI toolkit that's easy to use and both are portable.
I agree with the question though. Visual Studio is a pig. Its debugger is pretty nice, but the rest is a pig to work with (particularly coming from a OSS background where the tools don't generally try to lock you in).
You could also look at nmake and calling the VC++ compiler tools directly from the command line.
We use VC++ as a compiler / linker but use Jam to drive the builds. The actual Visual Studio is only used as a debugger. The benefit is that once we set up Jam to build a project in Windows, it takes minimal effort (frequently none) to get it working for Unix.
The Zeus IDE works just fine as a MSVC alternative. It can even import MSVC project and solution files.
A bit late to the party, but I'd like to add that in 2018 there finally begins to show up a viable alternative that is good enough to promise emancipation from the monopoly of VS on Windows C++ development:
Sublime Text as editor, with the following plugins:
EasyClangComplete, a decent (like, just working) replacement for Intellisense;
[optionally] Clang Format, for much more flexible source formatting experience than MS would ever come up with;
Clang-cl as a wrapper around Clang compiler aimed for maximum MSVC compatibility.
Unfortunately, Microsoft Build Tools are still needed for standard library headers, but the download size is nothing compared to the whole VS behemoth. The upside is that Clang-cl picks them up automagically and Build Tools somehow don't mandate that you let their executables go online to sign in and activate your free license yet!
Setting this all up to a working configuration is a bit more complicated than slapping together a VS project/solution, but it's totally worth it. As a bonus, setting things up manually might give you a better understanding of what goes on under the hood of an IDE.
One thing to miss might be the superb VS debugger... Well, if you're ready to break habits, the open source x64dbg might come to the rescue, ability to view and step through source code via .pdb files included (and yes, Clang can generate them now!).
Update: As of 2019, a much better and future-proof alternative to EasyClangComplete is using Clangd via LSP plugin.
Absolutely, but it's just a lot easier to use Microsoft's IDE to develop for a Microsoft operating system. When in Rome...
Eclipse is a good alternative.
The Code::Blocks IDE comes with the MinGW C++ compiler and support for wxWidgits. The IDE is pretty minimalist which may or may not be what you are looking for - I really like it.
Dev-C++ I have found very useful, and free :)
Very possible, Qt is your friend. Qt Creator is in RC stage too so something to look forward to. Until then you can use it with something like Code::Blocks. Code::Blocks itself is a great environment alone, and also has a lot of support for wxWidgets. If you're just looking for an IDE change, as previously mentioned, Code::Blocks can use compilers from other IDE's as well.
-John
SlickEdit (or a number of other editors that support ctags or something similar) makes for a pretty decent 'IDE'.
You can use these editors with makefiles (or other build tools) to drive pretty much whatever compiler you want (MVCS, mingw, Comeau, Digital Mars, whatever).
A couple employers ago, that's exactly what we did. We used MS compilers driven by makefiles and the main editor used was SlickEdit. We used the Debugging Tools for Windows package for debugging (a lot of what we did was kernel-mode). Worked out pretty well.
Wascana Desktop Developer is a distribution of Eclipse CDT configured specifically for developing on Windows.
I would recommend giving Notepad++, MSBuild, and the Windows SDK a look over. You could also use XBuild, but that is more MONO specific. Mind you, MSBuild, and XBuild are just automation tools, so you'd be spending more time with Windows SDK.
I'm sure to receive a lot of flak for this, but I find C++Builder to be a much easier IDE/compiler to develop Windows C++ apps with than MSVC. It may not be the cheapest solution, or have all the same bells+whistles, or be the most language-compliant (its 32bit compiler does not support C++11 yet, but its 64bit compiler does), but you can't really beat its visual UI designer and 3rd party component market.