Unify symbol visibility configuration for all compilers

This makes it possible to build unit tests with shared libraries on MSVC.

Change-Id: I1db66a80b2c78c4f3d354e35235244d17bac9809
diff --git a/internal/ceres/file.h b/internal/ceres/file.h
index 30c0225..c0015df 100644
--- a/internal/ceres/file.h
+++ b/internal/ceres/file.h
@@ -46,7 +46,8 @@
 
 // Join two path components, adding a slash if necessary.  If basename is an
 // absolute path then JoinPath ignores dirname and simply returns basename.
-std::string JoinPath(const std::string& dirname, const std::string& basename);
+CERES_EXPORT_INTERNAL std::string JoinPath(const std::string& dirname,
+                                           const std::string& basename);
 
 }  // namespace internal
 }  // namespace ceres