Looks like you are mixing c and c++.
A c compiler uses a different name for the same function then a c++ compiler and that might confuse the linker.
What you exactly have to do depends on what A.o contains
Looks like the header "A.h" needs needs to have conditions like
Code:
#ifdef __cplusplus
extern "C" {
#endif
// the functions defined in a c module
void a_c_function();
#ifdef __cplusplus
}
#endif
This is the way to enable c++-code to call c function.
if A.o contains c++ code then you have to conditionally exclude things like class definitions for the c compiler.
Kurt