diff --git a/core/core.pri b/core/core.pri
index 018e0e0a31a84e4bce4b52b9e706c4f0fa238eb1..62dd63001f41bbffd384f152f1b1fd3e54823efe 100644
--- a/core/core.pri
+++ b/core/core.pri
@@ -1,3 +1,5 @@
+include(unix/unix.pri)
+
 HEADERS += $$PWD/dap_common.h \
     $$PWD/dap_config.h \
     $$PWD/dap_math_ops.h \
diff --git a/core/unix/dap_cpu_monitor.h b/core/unix/dap_cpu_monitor.h
index cc6359400bc3701eb8ec6d8ca3e9af9f01da53c7..ed15e28b65348b189a40818d32d11568621ede51 100644
--- a/core/unix/dap_cpu_monitor.h
+++ b/core/unix/dap_cpu_monitor.h
@@ -24,6 +24,11 @@
 
 #pragma once
 
+// For C++
+#ifdef __cplusplus
+extern "C" {
+#endif
+
 #define MAX_CPU_COUNT 64
 
 #include <stdlib.h>
@@ -58,3 +63,7 @@ void dap_cpu_monitor_deinit(void);
  * @return
  */
 dap_cpu_stats_t dap_cpu_get_stats(void);
+
+#ifdef __cplusplus
+}
+#endif
diff --git a/core/unix/dap_process_manager.h b/core/unix/dap_process_manager.h
index b35bfeb294e250e726b45fbd9ada23021ad2be77..9ac46bf77b51643af66df379fc23fcdaccb6a2eb 100755
--- a/core/unix/dap_process_manager.h
+++ b/core/unix/dap_process_manager.h
@@ -22,6 +22,10 @@
     along with any DAP based project.  If not, see <http://www.gnu.org/licenses/>.
 */
 
+#ifdef __cplusplus
+extern "C" {
+#endif
+
 #ifdef __linux__
 
 #include <stdbool.h>
@@ -44,3 +48,7 @@ extern bool daemonize_process(void);
 extern bool kill_process(pid_t pid);
 
 #endif
+
+#ifdef __cplusplus
+}
+#endif
diff --git a/core/unix/dap_process_memory.h b/core/unix/dap_process_memory.h
index d07b3181da25416b307c6ed27fce51b4c00b7ec8..f4367682a31fd3494ed8eb46c4405ae52c92ea0a 100644
--- a/core/unix/dap_process_memory.h
+++ b/core/unix/dap_process_memory.h
@@ -22,6 +22,10 @@
     along with any DAP based project.  If not, see <http://www.gnu.org/licenses/>.
 */
 
+#ifdef __cplusplus
+extern "C" {
+#endif
+
 #include <stdint.h>
 #include <sys/types.h>
 
@@ -44,3 +48,7 @@ dap_process_memory_t get_proc_mem_current(void);
  * @return
  */
 dap_process_memory_t get_proc_mem_by_pid(pid_t pid);
+
+#ifdef __cplusplus
+}
+#endif
diff --git a/core/unix/dap_network_monitor.c b/core/unix/linux/dap_network_monitor.c
similarity index 100%
rename from core/unix/dap_network_monitor.c
rename to core/unix/linux/dap_network_monitor.c
diff --git a/core/unix/dap_network_monitor.h b/core/unix/linux/dap_network_monitor.h
similarity index 97%
rename from core/unix/dap_network_monitor.h
rename to core/unix/linux/dap_network_monitor.h
index b81e588ee50950dea67c686c50e48136f088a119..a8b04caa18d281d412792941ac052f8189250409 100644
--- a/core/unix/dap_network_monitor.h
+++ b/core/unix/linux/dap_network_monitor.h
@@ -22,6 +22,10 @@
     along with any DAP based project.  If not, see <http://www.gnu.org/licenses/>.
 */
 
+#ifdef __cplusplus
+extern "C" {
+#endif
+
 #include <stdint.h>
 #include <stdbool.h>
 #include <net/if.h>
@@ -71,3 +75,7 @@ int dap_network_monitor_init(dap_network_monitor_notification_callback_t callbac
  * @brief dap_network_monitor_deinit
  */
 void dap_network_monitor_deinit(void);
+
+#ifdef __cplusplus
+}
+#endif
diff --git a/core/unix/linux/linux.pri b/core/unix/linux/linux.pri
new file mode 100644
index 0000000000000000000000000000000000000000..05fc40b8a06d55a4b52d3c47ce3767c48f29b73c
--- /dev/null
+++ b/core/unix/linux/linux.pri
@@ -0,0 +1,5 @@
+HEADERS += $$PWD/dap_network_monitor.h \
+
+SOURCES += $$PWD/dap_network_monitor.c \
+
+INCLUDEPATH += $$PWD
diff --git a/core/unix/unix.pri b/core/unix/unix.pri
new file mode 100644
index 0000000000000000000000000000000000000000..e81e162369cb52fca42771ccc1e2bed46b1c303d
--- /dev/null
+++ b/core/unix/unix.pri
@@ -0,0 +1,13 @@
+linux-* {
+    include(linux/linux.pri)
+}
+
+HEADERS += $$PWD/dap_cpu_monitor.h \
+           $$PWD/dap_process_manager.h \
+           $$PWD/dap_process_memory.h \
+
+SOURCES += $$PWD/dap_cpu_monitor.c \
+           $$PWD/dap_process_manager.c \
+           $$PWD/dap_process_memory.c \
+
+INCLUDEPATH += $$PWD
diff --git a/unix.pri b/unix.pri
new file mode 100644
index 0000000000000000000000000000000000000000..4898540d9b43d3d0547a39e9dc07a2ee9684bb61
--- /dev/null
+++ b/unix.pri
@@ -0,0 +1,9 @@
+include(linux)
+
+HEADERS += $$PWD/dap_cpu_monitor.h \
+            $$PWD/dap_network_monitor.h \
+
+SOURCES += $$PWD/dap_cpu_monitor.c \
+           $$PWD/dap_network_monitor.c
+
+INCLUDEPATH += $$PWD