cstdio is needed to compile on Linux, otherwise sprintf isn't recognized by the compiler. I don't know which branch is under active development, but this applies to either v2.1 or v2.2:
--- ncl/nxsstring.h (revision 451)
+++ ncl/nxsstring.h (working copy)
@@ -21,6 +21,7 @@
#define NCL_NXSSTRING_H
+#include <cstdio>
#include <cstring>
#include <functional>
#include <ostream>