diff --git a/python/centroidal_dynamics_python.cpp b/python/centroidal_dynamics_python.cpp
index 7043d52b0c782057595b12c8b869c0740145583a..3c299a7eae6ec198e34318e82e7b1a23ba60219f 100644
--- a/python/centroidal_dynamics_python.cpp
+++ b/python/centroidal_dynamics_python.cpp
@@ -55,10 +55,10 @@ BOOST_PYTHON_MODULE(hpp_centroidal_dynamics) {
   /** BEGIN eigenpy init**/
   eigenpy::enableEigenPy();
 
-  eigenpy::enableEigenPySpecific<MatrixX3ColMajor, MatrixX3ColMajor>();
-  eigenpy::enableEigenPySpecific<MatrixXXColMajor, MatrixXXColMajor>();
-  eigenpy::enableEigenPySpecific<Vector3, Vector3>();
-  eigenpy::enableEigenPySpecific<VectorX, VectorX>();
+  // eigenpy::enableEigenPySpecific<MatrixX3ColMajor, MatrixX3ColMajor>();
+  // eigenpy::enableEigenPySpecific<MatrixXXColMajor, MatrixXXColMajor>();
+  // eigenpy::enableEigenPySpecific<Vector3, Vector3>();
+  // eigenpy::enableEigenPySpecific<VectorX, VectorX>();
   /*eigenpy::exposeAngleAxis();
   eigenpy::exposeQuaternion();*/
 
diff --git a/src/centroidal_dynamics.cpp b/src/centroidal_dynamics.cpp
index 7d6bc6afa193f996eecd64c590178bc32ec9f68e..e5061bbe1d00cc1f5c86c177fc66679d0811adba 100644
--- a/src/centroidal_dynamics.cpp
+++ b/src/centroidal_dynamics.cpp
@@ -19,12 +19,12 @@ bool Equilibrium::m_is_cdd_initialized = false;
 Equilibrium::Equilibrium(const Equilibrium& other)
     : m_mass(other.m_mass),
       m_gravity(other.m_gravity),
+      m_G_centr(other.m_G_centr),
       m_name(other.m_name),
       m_algorithm(other.m_algorithm),
       m_solver_type(other.m_solver_type),
       m_solver(Solver_LP_abstract::getNewSolver(other.m_solver_type)),
       m_generatorsPerContact(other.m_generatorsPerContact),
-      m_G_centr(other.m_G_centr),
       m_H(other.m_H),
       m_h(other.m_h),
       m_is_cdd_stable(other.m_is_cdd_stable),
@@ -118,7 +118,7 @@ bool Equilibrium::computeGenerators(Cref_matrixX3 contactPoints, Cref_matrixX3 c
 
     // compute generators
     theta = pi_4;
-    for (int j = 0; j < cg; j++) {
+    for (unsigned int j = 0; j < cg; j++) {
       G.col(j) = frictionCoefficient * sin(theta) * T1 + frictionCoefficient * cos(theta) * T2 +
                  contactNormals.row(i).transpose();
       G.col(j).normalize();
@@ -132,7 +132,7 @@ bool Equilibrium::computeGenerators(Cref_matrixX3 contactPoints, Cref_matrixX3 c
 
   // Compute the coefficient to convert b0 to e_max
   Vector3 f0 = Vector3::Zero();
-  for (int j = 0; j < cg; j++) f0 += G.col(j);  // sum of the contact generators
+  for (unsigned int j = 0; j < cg; j++) f0 += G.col(j);  // sum of the contact generators
   // Compute the distance between the friction cone boundaries and
   // the sum of the contact generators, which is e_max when b0=1.
   // When b0!=1 we just multiply b0 times this value.
@@ -184,7 +184,7 @@ bool Equilibrium::setNewContacts(const MatrixX3& contactPoints, const MatrixX3&
       attempts--;
     }
     // resetting random because obviously libcdd always resets to 0
-    srand(time(NULL));
+    srand((unsigned int)time(NULL));
     if (!m_is_cdd_stable) {
       return false;
     }
@@ -501,7 +501,7 @@ LP_status Equilibrium::findExtremumOverLine(Cref_vector3 a, Cref_vector3 a0, dou
   return LP_STATUS_ERROR;
 }
 
-LP_status Equilibrium::findExtremumInDirection(Cref_vector3 direction, Ref_vector3 com, double e_max) {
+LP_status Equilibrium::findExtremumInDirection(Cref_vector3 /*direction*/, Ref_vector3 /*com*/, double /*e_max*/) {
   if (m_G_centr.cols() == 0) return LP_STATUS_INFEASIBLE;
   SEND_ERROR_MSG("findExtremumInDirection not implemented yet");
   return LP_STATUS_ERROR;
diff --git a/src/stop-watch.cpp b/src/stop-watch.cpp
index ebeb47a0dc549e89004658eb298fc34ae653e8b0..946ec195719c0015fd6171b062aaf9ce4a870e89 100644
--- a/src/stop-watch.cpp
+++ b/src/stop-watch.cpp
@@ -213,9 +213,9 @@ void Stopwatch::report(string perf_name, int precision, std::ostream& output) {
 
   PerformanceData& perf_info = records_of->find(perf_name)->second;
 
-  const int MAX_NAME_LENGTH = 60;
+  const long unsigned int MAX_NAME_LENGTH = 60;
   string pad = "";
-  for (int i = perf_name.length(); i < MAX_NAME_LENGTH; i++) pad.append(" ");
+  for (long unsigned int i = perf_name.length(); i < MAX_NAME_LENGTH; i++) pad.append(" ");
 
   output << perf_name << pad;
   output << std::fixed << std::setprecision(precision) << (perf_info.min_time * 1e3) << "\t";
diff --git a/test/test_static_equilibrium.cpp b/test/test_static_equilibrium.cpp
index e11a503093934ed4ed52029118573aeff869764c..44ea68fe78ec38c0c652d1badfbe79504e0943e9 100644
--- a/test/test_static_equilibrium.cpp
+++ b/test/test_static_equilibrium.cpp
@@ -150,7 +150,7 @@ int test_computeEquilibriumRobustness(Equilibrium* solver_1, Equilibrium* solver
  * @param verb Verbosity level, 0 print nothing, 1 print summary, 2 print everything
  */
 int test_findExtremumOverLine(Equilibrium* solver_to_test, Equilibrium* solver_ground_truth, Cref_vector3 a0,
-                              int N_TESTS, double e_max, const string& PERF_STRING_TEST,
+                              unsigned int N_TESTS, double e_max, const string& PERF_STRING_TEST,
                               const string& PERF_STRING_GROUND_TRUTH, int verb = 0) {
   int error_counter = 0;
   centroidal_dynamics::Vector3 a, com;
@@ -221,8 +221,8 @@ void drawRobustnessGrid(int N_CONTACTS, int GRID_SIZE, Equilibrium* solver, Cref
   centroidal_dynamics::VectorX minDistContactPoint = 1e10 * centroidal_dynamics::VectorX::Ones(4 * N_CONTACTS);
 
   // create grid of com positions to test
-  for (unsigned int i = 0; i < GRID_SIZE; i++) {
-    for (unsigned int j = 0; j < GRID_SIZE; j++) {
+  for (int i = 0; i < GRID_SIZE; i++) {
+    for (int j = 0; j < GRID_SIZE; j++) {
       // look for contact point positions on grid
       for (long k = 0; k < 4 * N_CONTACTS; k++) {
         double dist = (p.block<1, 2>(k, 0) - comPositions.block<1, 2>(i * GRID_SIZE + j, 0)).norm();
@@ -237,8 +237,8 @@ void drawRobustnessGrid(int N_CONTACTS, int GRID_SIZE, Equilibrium* solver, Cref
 
   cout << "\nContact point positions\n";
   bool contactPointDrawn;
-  for (unsigned int i = 0; i < GRID_SIZE; i++) {
-    for (unsigned int j = 0; j < GRID_SIZE; j++) {
+  for (int i = 0; i < GRID_SIZE; i++) {
+    for (int j = 0; j < GRID_SIZE; j++) {
       contactPointDrawn = false;
       for (long k = 0; k < 4 * N_CONTACTS; k++) {
         if (contactPointCoord(k, 0) == i && contactPointCoord(k, 1) == j) {
@@ -256,7 +256,7 @@ void drawRobustnessGrid(int N_CONTACTS, int GRID_SIZE, Equilibrium* solver, Cref
   int grid_size = (int)sqrt(comPositions.rows());
   double rob;
   LP_status status;
-  for (unsigned int i = 0; i < comPositions.rows(); i++) {
+  for (int i = 0; i < comPositions.rows(); i++) {
     status = solver->computeEquilibriumRobustness(comPositions.row(i).transpose(), rob);
     if (status != LP_STATUS_OPTIMAL) {
       SEND_ERROR_MSG("Faild to compute equilibrium robustness of com position " + toString(comPositions.row(i)) +
@@ -392,7 +392,7 @@ int main() {
   RPY_UPPER_BOUNDS << +2 * gamma, +2 * gamma, +M_PI;
   double X_MARG = 0.07;
   double Y_MARG = 0.07;
-  const int GRID_SIZE = 10;
+  const unsigned int GRID_SIZE = 10;
   bool DRAW_CONTACT_POINTS = false;
   /************************************ END USER PARAMETERS *****************************/
 
@@ -423,7 +423,7 @@ int main() {
   RVector2 com_LB, com_UB;
   centroidal_dynamics::VectorX x_range(GRID_SIZE), y_range(GRID_SIZE);
   MatrixXX comPositions(GRID_SIZE * GRID_SIZE, 3);
-  for (unsigned n_test = 0; n_test < N_TESTS; n_test++) {
+  for (unsigned int n_test = 0; n_test < N_TESTS; n_test++) {
     generateContacts(N_CONTACTS, MIN_CONTACT_DISTANCE, LX, LY, CONTACT_POINT_LOWER_BOUNDS, CONTACT_POINT_UPPER_BOUNDS,
                      RPY_LOWER_BOUNDS, RPY_UPPER_BOUNDS, p, N);