I don't see enough info in your post to be sure of what you are trying to do, but I have a good guess.
If you want functions that can be called from either C or C++, they must have a C interface. In C++ you use
to declare a C interface for a function (both for declaring an external function with C interface that is called here and defined elsewhere and for defining a function here with C interface to be called elsewhere).
You often need an include file that can declare the C interface and can be included in either C or C++ compiles. Usually that requires something like conditionally
#defineing some symbol to be either nothing or
"C" so it can be used every place a C interface must be predeclared with
extern if including into a C module but with
extern "C" if including into C++. Other cases may require two symbols, one for nothing vs.
extern "C" { and the other for nothing vs.
}