Ensure consistent visibility attributes

Change-Id: Ib80d655a3601a716956bbd2b977d295a809307c1
diff --git a/internal/ceres/conjugate_gradients_solver.h b/internal/ceres/conjugate_gradients_solver.h
index ee0919b..ba70a13 100644
--- a/internal/ceres/conjugate_gradients_solver.h
+++ b/internal/ceres/conjugate_gradients_solver.h
@@ -60,7 +60,8 @@
 
 // Adapter class that makes LinearOperator appear like an instance of
 // ConjugateGradientsLinearOperator.
-class LinearOperatorAdapter : public ConjugateGradientsLinearOperator<Vector> {
+class CERES_NO_EXPORT LinearOperatorAdapter
+    : public ConjugateGradientsLinearOperator<Vector> {
  public:
   LinearOperatorAdapter(LinearOperator& linear_operator)
       : linear_operator_(linear_operator) {}
@@ -75,7 +76,7 @@
 
 // Options to control the ConjugateGradientsSolver. For detailed documentation
 // for each of these options see linear_solver.h
-struct ConjugateGradientsSolverOptions {
+struct CERES_NO_EXPORT ConjugateGradientsSolverOptions {
   int min_num_iterations = 1;
   int max_num_iterations = 1;
   int residual_reset_period = 10;
diff --git a/internal/ceres/eigensparse.cc b/internal/ceres/eigensparse.cc
index 9e2b43e..1bc16b6 100644
--- a/internal/ceres/eigensparse.cc
+++ b/internal/ceres/eigensparse.cc
@@ -52,6 +52,8 @@
 
 namespace ceres::internal {
 
+namespace {
+
 template <typename Solver>
 class EigenSparseCholeskyTemplate final : public SparseCholesky {
  public:
@@ -146,6 +148,8 @@
   Solver solver_;
 };
 
+}  // namespace
+
 std::unique_ptr<SparseCholesky> EigenSparseCholesky::Create(
     const OrderingType ordering_type) {
   using WithAMDOrdering = Eigen::SimplicialLDLT<Eigen::SparseMatrix<double>,