This worked!
#include "EXTERN.h"
#include "perl.h"
#include "XSUB.h"
/* These lines are needed to avoid collisions */
#undef XSPROTO
#define XSPROTO(name) void name(pTHX_ struct cv* cv)
Despite the additional caveats given by you and hexcoder, adding just those last two lines as suggested allowed things to compile without error, and I tested the resulting module/library with a basic call and got the expected response. There's still a lot of work to do cleaning up the interface and getting it to use existing system libraries instead of pulling everything into the module shared object file, but I'm willing to spend the time now that I know the basics work.
Thanks to both of you for the help. I'd give you both more upvotes if I could.