every time I modify the source,I have to re-build to make it take effect.It wastes too much time.
Um... yes? That's how compilers work? You have to recompile the files you modified, as well as all files that depend on them.
If your complaint is about always having to recompile your entire project even when only modifying one file, then your project management is bad. This does not normally happen, unless you are doing something severely wrong.
using make mechanism would be more efficient.
You can write your own makefile and check the option "use custom makefile" if you want.
However, Code::Blocks' own build system is faster and easier to maintain, so unless you either have a previously existing makefile or you must provide a makefile for someone else anyway, this is nonsense.
why can't I export makefile(grayed) under linux.(build 2750)
Because this is no longer implemented. Makefile generation was very problematic and error-prone. Also, it is not really needed, as the builtin build system works fine for "normal" things, and there is no way the IDE could guess the "not so normal" things people do with makefiles. Thus, IDE users can use the IDE's build systems, and makefile gurus will write their own makefiles anyway (which will be 1000 times better than the ones generated by Code::Blocks).
EDIT: This does not necessarily mean that we will not (maybe, possibly) implement a makefile exporter again at some point in the future. However, for now, this is not on the schedule.
request:auto-save source files when click Run or Build.
Source files
are saved before a build starts (if they belong to the project).
Source files
must not be saved when you run a target.