diff --git a/third_party/osqp-cpp/BUILD b/third_party/osqp-cpp/BUILD
new file mode 100644
index 0000000..e419d2b
--- /dev/null
+++ b/third_party/osqp-cpp/BUILD
@@ -0,0 +1,32 @@
+cc_library(
+    name = "osqp-cpp",
+    srcs = [
+        "src/osqp++.cc",
+    ],
+    hdrs = [
+        "include/osqp++.h",
+    ],
+    includes = [
+        "include",
+    ],
+    target_compatible_with = ["@platforms//os:linux"],
+    visibility = ["//visibility:public"],
+    deps = [
+        "//third_party/osqp",
+        "@com_google_absl//absl/status",
+        "@com_google_absl//absl/status:statusor",
+        "@org_tuxfamily_eigen//:eigen",
+    ],
+)
+
+cc_test(
+    name = "osqp-cpp_test",
+    srcs = [
+        "test/osqp++_test.cc",
+    ],
+    deps = [
+        ":osqp-cpp",
+        "//aos/testing:googletest",
+        "@com_google_googletest//:gtest",
+    ],
+)
diff --git a/third_party/osqp-cpp/include/osqp++.h b/third_party/osqp-cpp/include/osqp++.h
index 3f79fa9..86c9ea7 100644
--- a/third_party/osqp-cpp/include/osqp++.h
+++ b/third_party/osqp-cpp/include/osqp++.h
@@ -30,7 +30,7 @@
 
 // Must match the typedef in osqp/include/glob_opts.h (if not, it will trigger
 // a static_assert failure in osqp++.cc).
-using c_int = long long;  // NOLINT
+using c_int = int;  // NOLINT
 
 // A memory-safe mirror of the OSQPData struct defined in osqp/include/types.h.
 // The number of variables and constraints is implied by the shape of
diff --git a/third_party/osqp-cpp/src/osqp++.cc b/third_party/osqp-cpp/src/osqp++.cc
index 5fa119e..596339c 100644
--- a/third_party/osqp-cpp/src/osqp++.cc
+++ b/third_party/osqp-cpp/src/osqp++.cc
@@ -36,7 +36,7 @@
 static_assert(std::is_same_v<c_float, double>,
               "OSQP's c_float typedef is unexpectedly not the same as double");
 
-static_assert(sizeof(OSQPSettings) == 176,
+static_assert(sizeof(OSQPSettings) == 144,
               "The size of OSQPSettings has changed unexpectedly. Make sure "
               "that the map between ::OSQPSettings and osqp::OsqpSettings "
               "remains up to date.");
@@ -303,7 +303,7 @@
     }
   }
 
-  for (size_t i = 0; i < new_matrix.nonZeros(); ++i) {
+  for (Eigen::Index i = 0; i < new_matrix.nonZeros(); ++i) {
     if (ref_matrix->i[i] != new_matrix.innerIndexPtr()[i]) {
       return absl::InvalidArgumentError(
           "Sparsity of the new matrix differs from the previously "
@@ -541,6 +541,7 @@
 Map<const VectorXd> OsqpSolver::primal_infeasibility_certificate() const {
   OSQP_CHECK(IsInitialized());
   const OsqpExitCode exit_code = StatusToExitCode(workspace_->info->status_val);
+  (void)exit_code;
   OSQP_CHECK(exit_code == OsqpExitCode::kPrimalInfeasible ||
              exit_code == OsqpExitCode::kPrimalInfeasibleInaccurate);
   return Map<const VectorXd>(workspace_->delta_y, workspace_->data->m);
