Your main file is a C++ file and the external file is C, if you want to reference a C function from C++ in the header should surround the declarations with
#ifdef __cplusplus
extern "C"{
#endif
// declarations here
#ifdef __cplusplus
}
#endif
or
preface them with extern "C"
if those declarations will never be seen from a C file, as C has no idea what extern "C"
means.
The issue is that the compiler is looking for a C++ name mangled function not a C function, which uses a different mangling (usually none).