Two lines should be added to the sha2.h header file:
#include <cstdint>
#include <string>
One line should be added to the sha2.cpp:
#include <cstdint>
The program is not working correctly, you need to fix one line in the sha2.cpp file as well:
chunk[j] = std::stoull(raw.substr(j*64, 64), nullptr, 2);
I mean, stoul -> stoull