Functions in C++ files that should be called from Prolog must use C linkage, e.g.
extern "C" { void myfun(long i) {...}; };
To build a dynamic linked foreign resource with C++ code, you may (depending on platform) have to explicitly include certain libraries. E.g. on Sparc/SunOS 5.X using gcc:
% splfr .... -LD -L/usr/gnu/lib/gcc-lib/sparc-sun-solaris2.4/2.7.0 -lgcc
The library path is installation dependent, of course.