Read the source code for gdb, searching for that error message.
You'll find it "gdb/corefile.c" in a section with the comment:
/* Backward compatability with old way of specifying core files. */
"Old way"? Implies you should be using "the new way" whatever that is. The code is calling find_core_target() and the comments on it say:
/* Find a single core_stratum target in the list of targets and return it. If for some reason there is more than one, return NULL. */
Could it be finding more than one?
The "help text" for the core file command is:
Use FILE as core dump for examining memory and registers.\n\No arg means have no core file. This command has been superseded by the\n\`target core' and `detach' commands.
So you may want to use the "new form".
I was having trouble with gcc and core files yesterday. The command "powerpc-linux-gdb core" didn't work, but "powerpc-linux-gdb --core=core" did in my case.
Tom