From: Tzvetomir (VMware) Stoyanov <tz.stoyanov@xxxxxxxxx> C++ compiler uses name mangling to handle function overloading. As there is no function overloading in C, function names are not mangled. This breaks the linking of C library into C++ binary. Declare functions from trace-cmd.h as pure C, so the loader will not mangle the names when resolving them. Signed-off-by: Tzvetomir (VMware) Stoyanov <tz.stoyanov@xxxxxxxxx> --- src/plugins/KVMCombo.cpp | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/plugins/KVMCombo.cpp b/src/plugins/KVMCombo.cpp index 3ff9ca5..1ae03aa 100644 --- a/src/plugins/KVMCombo.cpp +++ b/src/plugins/KVMCombo.cpp @@ -13,7 +13,9 @@ #include<iostream> // trace-cmd +extern "C" { #include "trace-cmd/trace-cmd.h" +} // KernelShark #include "libkshark.h" -- 2.25.1