diff --git a/meson.build b/meson.build
index 7424a76..775242d 100644
--- a/meson.build
+++ b/meson.build
@@ -9,6 +9,16 @@
 
 incdir = [include_directories('src')]
 
+# libhei_dep provides dependencies needed to build with libhei as a subproject
+# rather than a base project.
+libhei_src = ['src/isolator/hei_isolator.cpp',
+              'src/isolator/hei_isolation_node.cpp',
+              'src/register/hei_hardware_register.cpp',
+              'src/util/hei_bit_string.cpp']
+
+libhei_dep = declare_dependency(include_directories : incdir,
+                                sources : libhei_src)
+
 build_tests = get_option('tests')
 
 if not build_tests.disabled()
diff --git a/src/isolator/hei_isolator.cpp b/src/isolator/hei_isolator.cpp
index cb254aa..d932659 100644
--- a/src/isolator/hei_isolator.cpp
+++ b/src/isolator/hei_isolator.cpp
@@ -19,8 +19,8 @@
     ReturnCode rc;
 
     // BEGIN temporary code
-    HEI_INF("Isolator::initialize(%p,%lu,%d)", i_buffer, i_bufferSize,
-            i_forceInit);
+    HEI_INF("Isolator::initialize(%p,%" PRIu64 ",%d)", i_buffer,
+            (uint64_t)i_bufferSize, i_forceInit);
 
     auto& scom_fw    = Flyweight<ScomRegister>::getSingleton();
     auto& idScom_fw  = Flyweight<IdScomRegister>::getSingleton();
diff --git a/src/util/hei_bit_string.cpp b/src/util/hei_bit_string.cpp
index 16713ec..8fc0776 100644
--- a/src/util/hei_bit_string.cpp
+++ b/src/util/hei_bit_string.cpp
@@ -15,9 +15,9 @@
 //##############################################################################
 
 // number of bits in a uint64_t
-constexpr uint64_t BitString::UINT64_BIT_LEN = sizeof(uint64_t) * 8;
+const uint64_t BitString::UINT64_BIT_LEN = sizeof(uint64_t) * 8;
 // number of bits in a uint8_t
-constexpr uint64_t BitString::UINT8_BIT_LEN = sizeof(uint8_t) * 8;
+const uint64_t BitString::UINT8_BIT_LEN = sizeof(uint8_t) * 8;
 
 //------------------------------------------------------------------------------
 
diff --git a/test/hei_user_defines.hpp b/test/hei_user_defines.hpp
index c84981b..08ddda9 100644
--- a/test/hei_user_defines.hpp
+++ b/test/hei_user_defines.hpp
@@ -7,6 +7,7 @@
  */
 
 #include <assert.h>
+#include <inttypes.h>
 #include <stdio.h>
 
 #define HEI_INF(...)                                                           \
diff --git a/test/simulator/user_interface.cpp b/test/simulator/user_interface.cpp
index 2bcc2af..0b8b6ef 100644
--- a/test/simulator/user_interface.cpp
+++ b/test/simulator/user_interface.cpp
@@ -50,8 +50,9 @@
         // END temporary code
         default:
             rc = RC_REG_ACCESS_FAILURE;
-            HEI_ERR("registerRead(%p,%p,%lx,%lx,%lx)", i_chip.getChip(),
-                    o_buffer, io_bufSize, i_regType, i_address);
+            HEI_ERR("registerRead(%p,%p,%" PRIu64 ",%" PRIx64 ",%" PRIx64 ")",
+                    i_chip.getChip(), o_buffer, (uint64_t)io_bufSize, i_regType,
+                    i_address);
     }
 
     return rc;
@@ -74,8 +75,9 @@
         // TODO: add cases for REG_TYPE_SCOM and REG_TYPE_ID_SCOM
         default:
             rc = RC_REG_ACCESS_FAILURE;
-            HEI_ERR("registerWrite(%p,%p,%lx,%lx,%lx)", i_chip.getChip(),
-                    i_buffer, io_bufSize, i_regType, i_address);
+            HEI_ERR("registerWrite(%p,%p,%" PRIu64 ",%" PRIx64 ",%" PRIx64 ")",
+                    i_chip.getChip(), i_buffer, (uint64_t)io_bufSize, i_regType,
+                    i_address);
     }
 
     return rc;
