gcc -static
does what you want in theory, but DLLs might not be what you think they are.
Consider the fact that in addition to being an on-disk paging system for applications, they're also used as a loadable/driver capacity, and as an intermediate executable format: ActiveX, DCOM, and any "plugin" architecture uses DLLs in such a way that gcc -static
won't work, and there's frankly no way to make them work.