If you are on Mac OS X and the gcc linker produces the error "can't map file, errno=22", you may want to examine your command line if there is an extraneous space character after the linker's
gcc -L /foo/bar [...] # error, notice the space after -L gcc -L/foo/bar [...] # correct, no space after -L
What is additionally annoying is that this seems to be a Mac OS X specific problem. Or maybe it's got something to do with the gcc version. Anyway, I had the problem with gcc 4.0.1 that comes with Apple's devtools, but not with gcc 4.3.2 on my Debian Linux box.
I am posting this article in the hope that Google will pick it up and someone will benefit from it in the future. I just wasted half an hour googling but none of the results I found were really helpful, because they were all questions and/or solutions to much more complicated problems.