First of all, if you want to call a function, it needs to be declared in the translation unit. The answer function from file1.cpp is currently not declared in file2.cpp's translation unit.
To fix this add a header file included in both .cpp files containing
int answer();
(By the way: extern on a function declaration is pretty much useless)
With this, the qualified call ::answer() should work as you want it to, calling the overload in the global namespace.
Unfortunately, as you noted in the comments, it will result in the unqualified call answer() in callout failing. This is because an unnamed namespace behaves as if the using namespace /* unnamed namespace name */; was used and unqualified name lookup will consider both the overload in a namespace as well as the overload introduced "as if" part of the namespace due to a using-directive equally.
I don't think there is any way to call the answer inside the unnamed namespace from outside of it under these circumstances. You can't differentiate the functions by overload resolution and you can't select the one inside the unnamed namespace by name, since the unnamed namespace doesn't have a name you can refer to. Your best option is to rename answer in file2.cpp or to add a function in the unnamed namespace with a different name forwarding the call to answer. Inside the unnamed namespace a simple unqualified call answer() will call the function in the unnamed namespace and will not consider the global namespace scope.
All of this would be easier if you didn't use (only) an unnamed namespace. If there was a named namespace differentiating the two functions, either could be called by qualified name.
callout(). file2.cpp has no way of knowing about functions that you may have defined in other files unless you declare them.extern int answer();in file2.cpp I'll get a errorcall of overloaded answer(), what I agree with. So I want to callanswer()from an unnamed namespace first, and then call the globalanswer()function from there.