diff --git a/tools/sk_app/WindowContext.h b/tools/sk_app/WindowContext.h
index f143dab013..046c525365 100644
--- a/tools/sk_app/WindowContext.h
+++ b/tools/sk_app/WindowContext.h
@@ -17,7 +17,7 @@ class SkSurface;
 
 namespace sk_app {
 
-class WindowContext {
+class SK_API WindowContext {
 public:
     WindowContext(const DisplayParams&);
 
diff --git a/tools/sk_app/mac/WindowContextFactory_mac.h b/tools/sk_app/mac/WindowContextFactory_mac.h
index e772030b95..224ff03f23 100644
--- a/tools/sk_app/mac/WindowContextFactory_mac.h
+++ b/tools/sk_app/mac/WindowContextFactory_mac.h
@@ -52,7 +52,7 @@ std::unique_ptr<WindowContext> MakeDawnMTLForMac(const MacWindowInfo&, const Dis
 #endif
 
 #ifdef SK_METAL
-std::unique_ptr<WindowContext> MakeMetalForMac(const MacWindowInfo&, const DisplayParams&);
+SK_API std::unique_ptr<WindowContext> MakeMetalForMac(const MacWindowInfo&, const DisplayParams&);
 #endif
 
 }  // namespace window_context_factory
diff --git a/tools/sk_app/unix/WindowContextFactory_unix.h b/tools/sk_app/unix/WindowContextFactory_unix.h
index 11bd2d2ac2..09c92dc417 100644
--- a/tools/sk_app/unix/WindowContextFactory_unix.h
+++ b/tools/sk_app/unix/WindowContextFactory_unix.h
@@ -36,15 +36,15 @@ struct XlibWindowInfo {
     int          fHeight;
 };
 
-std::unique_ptr<WindowContext> MakeVulkanForXlib(const XlibWindowInfo&, const DisplayParams&);
+SK_API std::unique_ptr<WindowContext> MakeVulkanForXlib(const XlibWindowInfo&, const DisplayParams&);
 
-std::unique_ptr<WindowContext> MakeGLForXlib(const XlibWindowInfo&, const DisplayParams&);
+SK_API std::unique_ptr<WindowContext> MakeGLForXlib(const XlibWindowInfo&, const DisplayParams&);
 
 #ifdef SK_DAWN
-std::unique_ptr<WindowContext> MakeDawnVulkanForXlib(const XlibWindowInfo&, const DisplayParams&);
+SK_API std::unique_ptr<WindowContext> MakeDawnVulkanForXlib(const XlibWindowInfo&, const DisplayParams&);
 #endif
 
-std::unique_ptr<WindowContext> MakeRasterForXlib(const XlibWindowInfo&, const DisplayParams&);
+SK_API std::unique_ptr<WindowContext> MakeRasterForXlib(const XlibWindowInfo&, const DisplayParams&);
 
 }  // namespace window_context_factory
 
diff --git a/tools/sk_app/win/WindowContextFactory_win.h b/tools/sk_app/win/WindowContextFactory_win.h
index c05a4f0acf..fc27cd2afb 100644
--- a/tools/sk_app/win/WindowContextFactory_win.h
+++ b/tools/sk_app/win/WindowContextFactory_win.h
@@ -20,21 +20,21 @@ struct DisplayParams;
 
 namespace window_context_factory {
 
-std::unique_ptr<WindowContext> MakeVulkanForWin(HWND, const DisplayParams&);
+SK_API std::unique_ptr<WindowContext> MakeVulkanForWin(HWND, const DisplayParams&);
 
-std::unique_ptr<WindowContext> MakeGLForWin(HWND, const DisplayParams&);
+SK_API std::unique_ptr<WindowContext> MakeGLForWin(HWND, const DisplayParams&);
 
-std::unique_ptr<WindowContext> MakeANGLEForWin(HWND, const DisplayParams&);
+SK_API std::unique_ptr<WindowContext> MakeANGLEForWin(HWND, const DisplayParams&);
 
 #ifdef SK_DIRECT3D
-std::unique_ptr<WindowContext> MakeD3D12ForWin(HWND, const DisplayParams&);
+SK_API std::unique_ptr<WindowContext> MakeD3D12ForWin(HWND, const DisplayParams&);
 #endif
 
 #ifdef SK_DAWN
-std::unique_ptr<WindowContext> MakeDawnD3D12ForWin(HWND, const DisplayParams&);
+SK_API std::unique_ptr<WindowContext> MakeDawnD3D12ForWin(HWND, const DisplayParams&);
 #endif
 
-std::unique_ptr<WindowContext> MakeRasterForWin(HWND, const DisplayParams&);
+SK_API std::unique_ptr<WindowContext> MakeRasterForWin(HWND, const DisplayParams&);
 
 }  // namespace window_context_factory