
The thing I wonder, though, is that your compiler output said "Building *.h". Cannot remember mine ever building header files. (Can be wrong, though.)
Hopefully I shall not offend you again, but I''ll try to explain in a quickie how C/C++ files are built:
In a project you add one or more "code" files; usually in the form of .cpp files, where all code that is going to be translated into machine instruction are and other constant data. When building the project, the compiler compiles each of these "code" files, alone or independently, into object files containing the native machine instructions plus linking information. Due to that all "code" files are build independently of each other, all functions, variables etc. used in each must be declared (not defined) so the compiler knows what they are. All those declarations are usually collected in one or more header files, which are included in all files that need them.
When all "code" files have been compiled into object files, they are sent to the linker to produce an executable, which resolves all function calls etc located in other object files.
Messy? I know

If you still have problem here, please list all files in your project/workspace, and which other files they include, and perhaps we can be able to help you sort this out.