After some google-ing I found a page saying that .o files are " “Object Code” is just the translation of “Source Code”, which can be referred as machine language code."

What .depend files are I didn't really understand.
Someone said it... kinda... links to libraries or something?
Else my exe would be much bigger in file size.

But I...
Why are those files created?
I mean, is the exe just linking to them or ..uh.....
How can the program run on different computers with just the .exe?

Someone said that if you code it a 'certain way' you only need the .exe
But many big programs always have a bunch of dll and crap?

sounds like you are talking about MS-Windows. dlls "and crap" are used to make the exe files smaller. If you have two *.exe that each use function foo() then put function foo() in a dll so that all *.exe programs can use them. dlls are libraries of pre-compiled code that your program can use without the need to compile the sourcve files. All (or most) win32 api functions are in that category.

The *nix equivalent of DLLs are called shared libraries.

> What .depend files are I didn't really understand.

Usually they are hints to the compilation/build environment.
Obviously, an object file depends on a corresponding source file, in a sense that it should be recompiled once the source changed. Less obvious, the object file also depends on modifications of various header files the source includes directly or indirectly. There could be other even less obvious dependencies.
The .depend files keep this information.

This article has been dead for over six months. Start a new discussion instead.