First, as opposed to messing with makefiles and the like, I'd recommend that you just use Project Builder and not cc, ld, etc directly. It makes it much simpler.
Anyway, static linking is probably what you are used to. It basically means that when your program is linked, it knows exactly where to look for things. For example, if you write a function in C and call it, then that function will be statically compiled into your program. The resulting code will know exactly where to branch to do that function. In contrast, with dynamic linking, the linker may not know where lots of stuff is and the location of that stuff is not determined until runtime. Although dynamicly linked programs are slower than statically linked ones (there is overhead of linking stuff while it is running) they have a number of advantages.
If I write something in Objective C, for example, pretty much everything is dynamically linked. So, If I call some method in NSImage, it will be determined at runtime, where to look for that method. The advantage of this is suppose that there are some horrid bugs in a library, or a library is inefficient. If it it dynamically linked, then Apple can update the library and WITHOUT recompiling, the program that dynamically links against those libraries gets the benefits of the updated code. If everything was statically linked then the programmer would have to recompile his program against the new libraries and release a new version.
So: dynamic linking is slower, but if the libraries that a program links against get updated, then the program kind of gets updated too, with no help from the developer. Statically linked stuff is faster, but if a library changes the developer needs to recompile and release a new version in order for the customer to get the benefits. Statically linked stuff may also be larger because, suppose that person A statically links a math library into his code, and person B dynamically links against a math library. All else equal, person A will have faster code, but it will take up more disk space because he has the whole math library compiled into his program.
Hope that clears up the static vs dynamic linking problem.