**gcc -shared -fPIC -O3 -ffast-math -fomit-frame-pointer -fPIC -Werror -o libmpikmeans.so mpi_kmeans.cxx**
Undefined symbols:

"___gxx_personality_v0", referenced from:

comp_randperm(void const*, void const*)in ccv2MOby.o

remove_point_from_cluster(unsigned int, double*, double const*, unsigned int*, unsigned int)in ccv2MOby.o

remove_point_from_cluster_w(unsigned int, double*, double const*, double const*, double*, unsigned int, unsigned int*, unsigned int)in ccv2MOby.o

add_point_to_cluster(unsigned int, double*, double const*, unsigned int*, unsigned int)in ccv2MOby.o

add_point_to_cluster_w(unsigned int, double*, double const*, double const*, double*, unsigned int, unsigned int*, unsigned int)in ccv2MOby.o

kmeans_error(char*) in ccv2MOby.o

compute_distance(double const*, double const*, unsigned int)in ccv2MOby.o

assign_point_to_cluster(unsigned int, double const*, double const*, unsigned int, unsigned int, unsigned int, double*, float*, float*, float*)in ccv2MOby.o

assign_point_to_cluster_w(unsigned int, double const*, double const*, unsigned int, unsigned int, unsigned int, double*, float*, float*, float*, unsigned int)in ccv2MOby.o

assign_point_to_cluster_ordinary(double const*, double const*, unsigned int, unsigned int)in ccv2MOby.o

init_point_to_cluster(unsigned int, double const*, double const*, unsigned int, unsigned int, double*, float*, float const*)in ccv2MOby.o

init_point_to_cluster_w(unsigned int, double const*, double const*, unsigned int, unsigned int, double*, float*, unsigned int, float const*)in ccv2MOby.o

compute_cluster_distances(float*, float*, double const*, unsigned int, unsigned int, bool const*)in ccv2MOby.o

compute_sserror_w(double const*, double const*, double const*, unsigned int const*, unsigned int, unsigned int)in ccv2MOby.o

compute_sserror(double const*, double const*, unsigned int const*, unsigned int, unsigned int)in ccv2MOby.o

randperm(unsigned int*, unsigned int)in ccv2MOby.o

remove_identical_clusters(double*, float*, double const*, unsigned int*, unsigned int*, unsigned int, unsigned int, unsigned int)in ccv2MOby.o

kmeans_run(double*, double const*, unsigned int*, unsigned int, unsigned int, unsigned int, unsigned int)in ccv2MOby.o

remove_identical_clusters_w(double*, float*, double const*, double const*, double*, unsigned int*, unsigned int*, unsigned int, unsigned int, unsigned int)in ccv2MOby.o

kmeans_run_w(double*, double const*, double const*, unsigned int*, unsigned int, unsigned int, unsigned int, unsigned int)in ccv2MOby.o

kmeans_run_master(double*, double const*, double const*, unsigned int*, unsigned int, unsigned int, unsigned int, unsigned int)in ccv2MOby.o

_kmeans in ccv2MOby.o

CIE in ccv2MOby.o

ld: symbol(s) not found

collect2: ld returned 1 exit status

make: *** [libmpikmeans] Error 1