An .mbo file is an intermediate "object" file, one step on the way to
producing an application (.MBX) from several source (.MB) files. You can't
run an MBO because it doesn't have everything necessary to produce an
application.
If you compile an .MB file and it has subs and functions declared but not
defined, or if it's missing Sub Main, MapBasic produces an .MBO instead of
an .MBX. The idea is to have several .MB files compiled into several .MBOs,
and then linked using a "project" file (with an extension of .MBP).
If you got an .MBO instead of an .MBX and didn't expect it, this probably
means you forgot to code the body of some of the subs and functions you
declared, or forgot to include a Sub Main.
You can find more details in the MapBasic user's guide.
HTH
________________________________
Spencer