tags:

views:

592

answers:

4

Just in general terms, for a noobie. I apparently need an 'SDK' to install something; what is this?

+17  A: 

"Software Development Kit" - a set of tools and libraries that let you develop software.

An example would be the iPhone SDK, which lets you develop software for the iPhone.

RichieHindle
+3  A: 

An SDK for a given product in general includes what you need to create an interface or an application based on that product. That's why "software development kit", a set of things needed to build software. It is strange though that an SDK is necessary for an install, could you provide more details?

Otávio Décio
+3  A: 

An SDK is a tool kit that helps you develop software for a certain platform.

Help us out with some context! We might just be able to get you the correct SDK.

iano
+11  A: 

An SDK is a set of libraries which hold reusable code that you in turn use to develop applications. Whether those applications will run in Windows, on an XBOX, and iPhone, in a Flash application, etc. determine what SDK you should be using.

Take the iPhone for example. To write an iPhone application, you write code in a language called Objective-C (which looks and feels just like C, but with Smalltalk's object-model). Anyway, every time you write an app, you dot want to have to write the code that draws text on the actual screen or registers the actual screen-touches. Instead, Apple provides the code that all application developers will need to do simple things.

Likewise, if you're writing for Windows, there are libraries to do things like draw an actual window, or connect to the network stack.

All of these common libraries, along with some other tools, make up an SDK.

For C++, you will probably see a lot of mention of Boost. This is not an SDK, but rather a set of libraries that contain code that a lot of other developers find useful.

What platform are you trying to write for? Are you just getting into C++ in Windows and looking to get started? Are you trying to write a game for some console?

Alex
Just getting into C++ on Windows, idd. I'm doing comp sci at uni next year but I want to give myself a head start.
Motig
Fair enough. To get started, you will need a C++ compiler, which is the program to turn your source code into something the computer can work with. I would recommend the excellent GCC compiler (its free). The Windows port is called MinGW. If you use this IDE :http://www.bloodshed.net/devcpp.html you will get a development environment and a compiler for free. I'm sure someone will leave a comment telling you to use Microsoft Visual * or Eclipse, but when you are just starting off with a language, I feel like a simpler editor/ide is better. Now all you need is a good book or web site.
Alex
@Alex, I upvoted your answer since it seems the best (at this point in time anyway). But all the comments I see here on Bloodshed indicate that it's not in active development and Code::Blocks is better. This is hearsay of course since I've used neither.
paxdiablo
I'd be happy to provide the comment advising to use Visual C++ Express Edition. It's the free version of the Microsoft tools, the same ones that are used to build their own software. I agree with the desire for an easy environment, and for novices a good debugger is important. GCC/GDB simply doesn't cut it.
MSalters
@Pax, I had actually not seen Code::Blocks before (in all honesty, I do all of my work in Emacs), but it looks great. Way nicer than bloodshed.@MSalters: I agree that a good debugging environment is important for everyone, especially beginners. And while I agree Visual C++ is a great environment (from what I've seen and heard from colleagues), I imagine that when Motig goes to school, they will be using GDB, so some exposure now can't hurt.
Alex
Thank you, all. MSVC++ I'm learning isn't exactly an easy tool to use. However, it might be fatal to my learning if I switched now, so I'll stick with it for a while yet.
Motig
@Alex, Pax: there is a newer version of devcpp called wx-DevC++ (http://wxdsgn.sourceforge.net/) which seems to be in more active development
a_m0d
I think if you can learn how to use the more difficult products earlier you give yourself a head start, but if you find that you are having a lot of difficulties then switching to a more simple IDE could do you some benefit. Many companies will be using MS Visual Studio for development so it can't hurt to know it very well.
Brian T Hannan