CERES_EXPORT fix to compile Ceres as DLL Below fixes are required to compile Ceres as a dynamic library using MSVC. 1. Added CERES_EXPORT to EigenQuaternionParameterization. 2. Removed CERES_EXPORT from CubicInterpolator and BicubicInterpolator. EigenQuaternionParameterization has its source embedded in ceres.dll whereas Cubic+BicubicInterpolators are defined in the header file and therefore do not require __declspec(dllimport). Change-Id: Idd1f387890c36aab51a1a4177ea7c06933b96f39
diff --git a/include/ceres/cubic_interpolation.h b/include/ceres/cubic_interpolation.h index 53bbc33..9804a33 100644 --- a/include/ceres/cubic_interpolation.h +++ b/include/ceres/cubic_interpolation.h
@@ -121,7 +121,7 @@ // double f, dfdx; // interpolator.Evaluator(1.5, &f, &dfdx); template<typename Grid> -class CERES_EXPORT CubicInterpolator { +class CubicInterpolator { public: explicit CubicInterpolator(const Grid& grid) : grid_(grid) { @@ -253,7 +253,7 @@ // interpolator.Evaluate(1.2, 2.5, &f, &dfdr, &dfdc); template<typename Grid> -class CERES_EXPORT BiCubicInterpolator { +class BiCubicInterpolator { public: explicit BiCubicInterpolator(const Grid& grid) : grid_(grid) {
diff --git a/include/ceres/local_parameterization.h b/include/ceres/local_parameterization.h index 379fc68..046c6bd 100644 --- a/include/ceres/local_parameterization.h +++ b/include/ceres/local_parameterization.h
@@ -222,7 +222,7 @@ // // Plus(x, delta) = [sin(|delta|) delta / |delta|, cos(|delta|)] * x // with * being the quaternion multiplication operator. -class EigenQuaternionParameterization : public ceres::LocalParameterization { +class CERES_EXPORT EigenQuaternionParameterization : public ceres::LocalParameterization { public: virtual ~EigenQuaternionParameterization() {} virtual bool Plus(const double* x,