diff --git a/libraries/pallas/include/pallas/utils/pallas_log.h b/libraries/pallas/include/pallas/utils/pallas_log.h
index beccd85..7baca4c 100644
--- a/libraries/pallas/include/pallas/utils/pallas_log.h
+++ b/libraries/pallas/include/pallas/utils/pallas_log.h
@@ -7,8 +7,14 @@
 #include <stddef.h>
 #include <stdio.h>
 
-extern __thread uint64_t pallas_thread_rank;
-extern unsigned int pallas_mpi_rank;
+#ifdef __cplusplus
+extern "C" {
+#endif
+  extern __thread uint64_t pallas_thread_rank;
+  extern unsigned int pallas_mpi_rank;
+#ifdef __cplusplus
+}
+#endif
 
 /** Stops the execution. */
 #define pallas_abort() abort()
diff --git a/libraries/pallas/src/pallas.cpp b/libraries/pallas/src/pallas.cpp
index 4b4d0b3..bce4ec1 100644
--- a/libraries/pallas/src/pallas.cpp
+++ b/libraries/pallas/src/pallas.cpp
@@ -13,8 +13,11 @@
 
 #include "pallas/utils/pallas_hash.h"
 #include "pallas/utils/pallas_log.h"
-__thread uint64_t pallas_thread_rank = 0;
-unsigned int pallas_mpi_rank = 0;
+
+extern "C" {
+  __thread uint64_t pallas_thread_rank = 0;
+  unsigned int pallas_mpi_rank = 0;
+}
 
 namespace pallas {
 
