It means that xtmpmain.c called functions named uart_setup()
and uart_cleanup()
, but they weren't found by the linker. You probably need to include a library, or to implement those functions for Windows in terms of the Win32 API.
Some "is it plugged in questions" are:
- Are the functions declared?
- Are the functions defined (i.e. implemented)?
- With exactly those names?
- Were those definitions excluded by the preprocessor?
- There is a gcc option that controls the presence or absence of a leading underscore. You didn't accidentally use that for one file and not others, right?
- Verify the declared calling convention.
__cdecl
and __stdcall
are very different animals. They usually produce mismatched exported symbol names for safety, and this error can be a symptom of that.
If this is a porting project, then it is likely that the original implementation of a UART-related function is written in a platform-dependent way. In that case, they often would be guarded by a #ifdef
of some form that depends on the compile-time platform.
To resolve that, you would need to implement them for this platform, in a style consistent with their usage in the rest of the application, and similarly guarded.