--- openvdb-7.0.0/openvdb/openvdb/Platform.h.orig	2020-02-18 10:12:13.310699100 +0300
+++ openvdb-7.0.0/openvdb/openvdb/Platform.h	2020-02-18 10:13:47.977635200 +0300
@@ -204,10 +204,6 @@
 #ifdef OPENVDB_IMPORT
 #undef OPENVDB_IMPORT
 #endif
-#ifdef __GNUC__
-    #define OPENVDB_EXPORT __attribute__((visibility("default")))
-    #define OPENVDB_IMPORT __attribute__((visibility("default")))
-#endif
 #ifdef _WIN32
     #ifdef OPENVDB_DLL
         #define OPENVDB_EXPORT __declspec(dllexport)
@@ -216,6 +212,9 @@
         #define OPENVDB_EXPORT
         #define OPENVDB_IMPORT
     #endif
+#elif defined(__GNUC__)
+    #define OPENVDB_EXPORT __attribute__((visibility("default")))
+    #define OPENVDB_IMPORT __attribute__((visibility("default")))
 #endif
 
 /// All classes and public free standing functions must be explicitly marked
--- openvdb-7.0.0/openvdb/openvdb/PlatformConfig.h.orig	2020-02-18 10:12:13.310699100 +0300
+++ openvdb-7.0.0/openvdb/openvdb/PlatformConfig.h	2020-02-18 10:13:47.977635200 +0300
@@ -11,7 +11,7 @@
 
     // By default, assume we're building OpenVDB as a DLL if we're dynamically
     // linking in the CRT, unless OPENVDB_STATICLIB is defined.
-    #if defined(_DLL) && !defined(OPENVDB_STATICLIB) && !defined(OPENVDB_DLL)
+    #if !defined(OPENVDB_STATICLIB) && !defined(OPENVDB_DLL)
         #define OPENVDB_DLL
     #endif
 
--- openvdb-7.0.0/openvdb/openvdb/io/TempFile.cc.orig	2020-02-18 10:25:55.092941700 +0300
+++ openvdb-7.0.0/openvdb/openvdb/io/TempFile.cc	2020-02-18 10:26:11.760074100 +0300
@@ -6,7 +6,7 @@
 #include "TempFile.h"
 
 #include <openvdb/Exceptions.h>
-#ifndef _MSC_VER
+#ifndef _WIN32
 #include <boost/iostreams/stream.hpp>
 #include <boost/iostreams/device/file_descriptor.hpp>
 #include <cstdlib> // for std::getenv(), mkstemp()
@@ -37,7 +37,7 @@
     /// @internal boost::filesystem::unique_path(), etc. might be useful here,
     /// but as of 9/2014, Houdini ships without the Boost.Filesystem library,
     /// which makes it much less convenient to use that library.
-#ifndef _MSC_VER
+#ifndef _WIN32
     TempFileImpl(std::ostream& os): mFileDescr(-1) { this->init(os); }
 
     void init(std::ostream& os)
@@ -89,7 +89,7 @@
     DeviceType mDevice;
     BufferType mBuffer;
     int mFileDescr;
-#else // _MSC_VER
+#else // _WIN32
     // Use only standard library routines; no POSIX.
 
     TempFileImpl(std::ostream& os) { this->init(os); }
@@ -117,7 +117,7 @@
 
     std::string mPath;
     std::filebuf mBuffer;
-#endif // _MSC_VER
+#endif // _WIN32
 
 private:
     TempFileImpl(const TempFileImpl&); // disable copying
diff -Naur openvdb-7.0.0-orig/openvdb/openvdb/io/File.h openvdb-7.0.0/openvdb/openvdb/io/File.h
--- openvdb-7.0.0-orig/openvdb/openvdb/io/File.h	2019-12-06 23:11:33.000000000 +0300
+++ openvdb-7.0.0/openvdb/openvdb/io/File.h	2020-02-18 13:45:06.979315100 +0300
@@ -130,7 +130,7 @@
 
     /// A const iterator that iterates over all names in the file. This is only
     /// valid once the file has been opened.
-    class NameIterator
+    class OPENVDB_API NameIterator
     {
     public:
         NameIterator(const NameMapCIter& iter): mIter(iter) {}
