xxxxxxxxxx
Both executable and object files are binary, but the difference is:
Object files contain unresolved external references
(such as printf, for instance).
They may need to be linked against other object files and libraries
In executable files all external references are resolved
(so if a function is defined in file1, but you need to call it
in file2, after proper linking file2 will "know" where that function is).
That means executable files are binaries ready to run