#include #include #include int foo() { printf("Foo is called\n"); const int lN = 27; double* lA = (double*)malloc(lN*lN*sizeof(double)); for (int i = 0; i < lN*lN; ++i) { lA[i] = i; } int lPiv[lN]; int lRes; dgetrf_(&lN, &lN, lA, &lN, lPiv, &lRes); return lRes; } class A { public: A() { foo();} }; static A sA; //A static declaration calls foo() !! int main(int pArgc, char* pArgv[]) { printf("Calling MPI_Init:\n"); MPI_Init(&pArgc, &pArgv); printf("MPI_Init done...\n"); foo(); MPI_Finalize(); return 0; }