Hola a todos!
Estoy intentando reemplazar una función, pagrid, en una aplicación llamada magpar. He de modificar el código de magpar en el fichero parteleser.c. He desarrollado mi código, pero soy incapaz de enlazarlo con las librerias de dicha funcion. magpar es compilado con mpicxx y pagrid en gcc.
He probado varias cosas. pagrid tiene en su estructura de datos principal unos atributos de tipo mem y heap que el compilador de mpicxx rechaza:
ubuntu@ubuntu-desktop:~/Escritorio/Proyecto/16-05-08/magpar-0_7/src$ make
/home/ubuntu/Escritorio/Proyecto/16-05-08/magpar-0_7/libs/mpi/bin/mpicxx -o init/parteleser.o -c -Wall -Wwrite-strings -Wno-strict-aliasing -fPIC -DSUNDIALS_VERSION=230 -I/home/ubuntu/Escritorio/Proyecto/16-05-08/magpar-0_7/libs/sundials-2.3.0/include -DMETIS -I/home/ubuntu/Escritorio/Proyecto/16-05-08/magpar-0_7/libs/ParMetis-3.1/METISLib -I/home/ubuntu/Escritorio/Proyecto/16-05-08/magpar-0_7/libs/pagridL -I/home/ubuntu/Escritorio/Proyecto/16-05-08/magpar-0_7/libs/pagridL/Lib -I/home/ubuntu/Escritorio/Proyecto/16-05-08/magpar-0_7/libs/pagridL/src -Wunused -DTAO -DPNG -I/home/ubuntu/Escritorio/Proyecto/16-05-08/magpar-0_7/libs/libpng-1.2.22 -DZLIB -I/home/ubuntu/Escritorio/Proyecto/16-05-08/magpar-0_7/libs/zlib-1.2.3 -DEXCH -I. -I/home/ubuntu/Escritorio/Proyecto/16-05-08/magpar-0_7/libs/petsc -I/home/ubuntu/Escritorio/Proyecto/16-05-08/magpar-0_7/libs/petsc/bmake/PETSc-config-magpar -I/home/ubuntu/Escritorio/Proyecto/16-05-08/magpar-0_7/libs/petsc/include -I/home/ubuntu/Escritorio/Proyecto/16-05-08/magpar-0_7/libs/mpi/include -I. -I/home/ubuntu/Escritorio/Proyecto/16-05-08/magpar-0_7/libs/mpich2-1.0.6/src/include -I/home/ubuntu/Escritorio/Proyecto/16-05-08/magpar-0_7/libs/mpich2-1.0.6/src/binding/f90 -I/home/ubuntu/Escritorio/Proyecto/16-05-08/magpar-0_7/libs/tao-1.9 -I/home/ubuntu/Escritorio/Proyecto/16-05-08/magpar-0_7/libs/tao-1.9/include -D__SDIR__="" init/parteleser.c
init/parteleser.c:89:3: aviso: "/*" dentro de un comentario
In file included from init/parteleser.c:29:
/home/ubuntu/Escritorio/Proyecto/16-05-08/magpar-0_7/libs/pagridL/Lib/pagrid_struct.h:24: error: ‘Mem’ no nombra a un tipo
/home/ubuntu/Escritorio/Proyecto/16-05-08/magpar-0_7/libs/pagridL/Lib/pagrid_struct.h:91: error: ‘Mem’ no nombra a un tipo
/home/ubuntu/Escritorio/Proyecto/16-05-08/magpar-0_7/libs/pagridL/Lib/pagrid_struct.h:166: error: ISO C++ prohíbe la declaración de ‘Heap’ sin tipo
/home/ubuntu/Escritorio/Proyecto/16-05-08/magpar-0_7/libs/pagridL/Lib/pagrid_struct.h:166: error: expected ‘;’ before ‘*’ token
/home/ubuntu/Escritorio/Proyecto/16-05-08/magpar-0_7/libs/pagridL/Lib/pagrid_struct.h:236: error: ISO C++ prohíbe la declaración de ‘Heap’ sin tipo
/home/ubuntu/Escritorio/Proyecto/16-05-08/magpar-0_7/libs/pagridL/Lib/pagrid_struct.h:236: error: expected ‘;’ before ‘*’ token
/home/ubuntu/Escritorio/Proyecto/16-05-08/magpar-0_7/libs/pagridL/Lib/pagrid_struct.h:237: error: ISO C++ prohíbe la declaración de ‘Heap’ sin tipo
/home/ubuntu/Escritorio/Proyecto/16-05-08/magpar-0_7/libs/pagridL/Lib/pagrid_struct.h:237: error: expected ‘;’ before ‘*’ token
make: *** [init/parteleser.o] Error 1
Eso por un lado, por el otro, he probado a comentar dichos elementos y a seguir desarrollando y al intentar compilarlo se lo traga pero me da un error de enlazado con la libreria
ubuntu@ubuntu-desktop:~/Escritorio/Proyecto/16-05-08/magpar-0_7/src$ make
...
-L/home/ubuntu/Escritorio/Proyecto/16-05-08/magpar-0_7/libs/tao-1.9/lib/PETSc-config-magpar -ltaopetsc -ltao -Wl,-rpath,/home/ubuntu/Escritorio/Proyecto/16-05-08/magpar-0_7/libs/tao-1.9/lib/PETSc-config-magpar -Wl,-rpath,/home/ubuntu/Escritorio/Proyecto/16-05-08/magpar-0_7/libs/petsc/lib/PETSc-config-magpar -L/home/ubuntu/Escritorio/Proyecto/16-05-08/magpar-0_7/libs/petsc/lib/PETSc-config-magpar -lpetscts -lpetscsnes -lpetscksp -lpetscdm -lpetscmat -lpetscvec -lpetsc -L/home/ubuntu/Escritorio/Proyecto/16-05-08/magpar-0_7/libs/ParMetis-3.1 -lmetis -L/home/ubuntu/Escritorio/Proyecto/16-05-08/magpar-0_7/libs/pagridL/Lib -lpagrid -L/home/ubuntu/Escritorio/Proyecto/16-05-08/magpar-0_7/libs/sundials-2.3.0/lib -lsundials_cvode -lsundials_nvecparallel -L/home/ubuntu/Escritorio/Proyecto/16-05-08/magpar-0_7/libs/libpng-1.2.22 -L/home/ubuntu/Escritorio/Proyecto/16-05-08/magpar-0_7/libs/libpng-1.2.22/lib -lpng -L/home/ubuntu/Escritorio/Proyecto/16-05-08/magpar-0_7/libs/zlib-1.2.3 -lz -Wl,-rpath,/home/ubuntu/Escritorio/Proyecto/16-05-08/magpar-0_7/libs/atlas/lib -L/home/ubuntu/Escritorio/Proyecto/16-05-08/magpar-0_7/libs/atlas/lib -llapack -Wl,-rpath,/home/ubuntu/Escritorio/Proyecto/16-05-08/magpar-0_7/libs/atlas/lib -L/home/ubuntu/Escritorio/Proyecto/16-05-08/magpar-0_7/libs/atlas/lib -lcblas -Wl,-rpath,/home/ubuntu/Escritorio/Proyecto/16-05-08/magpar-0_7/libs/atlas/lib -L/home/ubuntu/Escritorio/Proyecto/16-05-08/magpar-0_7/libs/atlas/lib -lf77blas -Wl,-rpath,/home/ubuntu/Escritorio/Proyecto/16-05-08/magpar-0_7/libs/atlas/lib -L/home/ubuntu/Escritorio/Proyecto/16-05-08/magpar-0_7/libs/atlas/lib -latlas -Wl,-rpath,/home/ubuntu/Escritorio/Proyecto/16-05-08/magpar-0_7/libs/mpich2-1.0.6/lib -L/home/ubuntu/Escritorio/Proyecto/16-05-08/magpar-0_7/libs/mpich2-1.0.6/lib -Wl,-rpath,/usr/lib/gcc/i486-linux-gnu/4.1.3 -L/usr/lib/gcc/i486-linux-gnu/4.1.3 -Wl,-rpath,/usr/lib/gcc/i486-linux-gnu/4.1.3/../../../../lib -L/usr/lib/gcc/i486-linux-gnu/4.1.3/../../../../lib -Wl,-rpath,/lib/../lib -L/lib/../lib -Wl,-rpath,/usr/lib/../lib -L/usr/lib/../lib -ldl -lmpich -lpthread -lrt -lgcc_s -lmpichf90 -lgfortranbegin -lgfortran -lm -Wl,-rpath,/usr/lib/gcc/i486-linux-gnu/4.2.1 -L/usr/lib/gcc/i486-linux-gnu/4.2.1 -Wl,-rpath,/usr/lib/gcc/i486-linux-gnu/4.2.1/../../../../lib -L/usr/lib/gcc/i486-linux-gnu/4.2.1/../../../../lib -Wl,-rpath,/usr/lib/gcc/i486-linux-gnu/4.2.1/../../.. -L/usr/lib/gcc/i486-linux-gnu/4.2.1/../../.. -Wl,-rpath,/home/ubuntu/Escritorio/Proyecto/16-05-08/magpar-0_7/libs/mpich2-1.0.6/lib -Wl,-rpath,/usr/lib/gcc/i486-linux-gnu/4.1.3 -Wl,-rpath,/usr/lib/gcc/i486-linux-gnu/4.1.3/../../../../lib -Wl,-rpath,/lib/../lib -Wl,-rpath,/usr/lib/../lib -lm -Wl,-rpath,/home/ubuntu/Escritorio/Proyecto/16-05-08/magpar-0_7/libs/mpich2-1.0.6/lib -L/home/ubuntu/Escritorio/Proyecto/16-05-08/magpar-0_7/libs/mpich2-1.0.6/lib -Wl,-rpath,/usr/lib/gcc/i486-linux-gnu/4.1.3 -L/usr/lib/gcc/i486-linux-gnu/4.1.3 -Wl,-rpath,/usr/lib/gcc/i486-linux-gnu/4.1.3/../../../../lib -L/usr/lib/gcc/i486-linux-gnu/4.1.3/../../../../lib -Wl,-rpath,/lib/../lib -L/lib/../lib -Wl,-rpath,/usr/lib/../lib -L/usr/lib/../lib -ldl -lmpich -lpthread -lrt -lgcc_s -lmpichf90 -lgfortranbegin -lgfortran -lm -Wl,-rpath,/usr/lib/gcc/i486-linux-gnu/4.2.1 -L/usr/lib/gcc/i486-linux-gnu/4.2.1 -Wl,-rpath,/usr/lib/gcc/i486-linux-gnu/4.2.1/../../../../lib -L/usr/lib/gcc/i486-linux-gnu/4.2.1/../../../../lib -Wl,-rpath,/usr/lib/gcc/i486-linux-gnu/4.2.1/../../.. -L/usr/lib/gcc/i486-linux-gnu/4.2.1/../../.. -Wl,-rpath,/home/ubuntu/Escritorio/Proyecto/16-05-08/magpar-0_7/libs/mpich2-1.0.6/lib -Wl,-rpath,/usr/lib/gcc/i486-linux-gnu/4.1.3 -Wl,-rpath,/usr/lib/gcc/i486-linux-gnu/4.1.3/../../../../lib -Wl,-rpath,/lib/../lib -Wl,-rpath,/usr/lib/../lib -lm -Wl,-rpath,/home/ubuntu/Escritorio/Proyecto/16-05-08/magpar-0_7/libs/mpich2-1.0.6/lib -L/home/ubuntu/Escritorio/Proyecto/16-05-08/magpar-0_7/libs/mpich2-1.0.6/lib -Wl,-rpath,/usr/lib/gcc/i486-linux-gnu/4.1.3 -L/usr/lib/gcc/i486-linux-gnu/4.1.3 -Wl,-rpath,/usr/lib/gcc/i486-linux-gnu/4.1.3/../../../../lib -L/usr/lib/gcc/i486-linux-gnu/4.1.3/../../../../lib -Wl,-rpath,/lib/../lib -L/lib/../lib -Wl,-rpath,/usr/lib/../lib -L/usr/lib/../lib -ldl -lmpich -lpthread -lrt -lgcc_s -lmpichf90 -lgfortranbegin -lgfortran -lm -Wl,-rpath,/usr/lib/gcc/i486-linux-gnu/4.2.1 -L/usr/lib/gcc/i486-linux-gnu/4.2.1 -Wl,-rpath,/usr/lib/gcc/i486-linux-gnu/4.2.1/../../../../lib -L/usr/lib/gcc/i486-linux-gnu/4.2.1/../../../../lib -Wl,-rpath,/usr/lib/gcc/i486-linux-gnu/4.2.1/../../.. -L/usr/lib/gcc/i486-linux-gnu/4.2.1/../../.. -Wl,-rpath,/home/ubuntu/Escritorio/Proyecto/16-05-08/magpar-0_7/libs/mpich2-1.0.6/lib -Wl,-rpath,/usr/lib/gcc/i486-linux-gnu/4.1.3 -Wl,-rpath,/usr/lib/gcc/i486-linux-gnu/4.1.3/../../../../lib -Wl,-rpath,/lib/../lib -Wl,-rpath,/usr/lib/../lib -lm -Wl,-rpath,/home/ubuntu/Escritorio/Proyecto/16-05-08/magpar-0_7/libs/mpich2-1.0.6/lib -Wl,-rpath,/usr/lib/gcc/i486-linux-gnu/4.1.3 -Wl,-rpath,/usr/lib/gcc/i486-linux-gnu/4.1.3/../../../../lib -Wl,-rpath,/lib/../lib -Wl,-rpath,/usr/lib/../lib -lmpichcxx -lstdc++ -Wl,-rpath,/home/ubuntu/Escritorio/Proyecto/16-05-08/magpar-0_7/libs/mpich2-1.0.6/lib -Wl,-rpath,/usr/lib/gcc/i486-linux-gnu/4.1.3 -Wl,-rpath,/usr/lib/gcc/i486-linux-gnu/4.1.3/../../../../lib -Wl,-rpath,/lib/../lib -Wl,-rpath,/usr/lib/../lib -lmpichcxx -lstdc++ -Wl,-rpath,/home/ubuntu/Escritorio/Proyecto/16-05-08/magpar-0_7/libs/mpich2-1.0.6/lib -L/home/ubuntu/Escritorio/Proyecto/16-05-08/magpar-0_7/libs/mpich2-1.0.6/lib -Wl,-rpath,/usr/lib/gcc/i486-linux-gnu/4.1.3 -L/usr/lib/gcc/i486-linux-gnu/4.1.3 -Wl,-rpath,/usr/lib/gcc/i486-linux-gnu/4.1.3/../../../../lib -L/usr/lib/gcc/i486-linux-gnu/4.1.3/../../../../lib -Wl,-rpath,/lib/../lib -L/lib/../lib -Wl,-rpath,/usr/lib/../lib -L/usr/lib/../lib -ldl -lmpich -lpthread -lrt -lgcc_s -ldl
init/parteleser.o: In function `PagridPartition(GridData*, int)':
parteleser.c:(.text+0x271): undefined reference to `LIBG_Init()'
collect2: ld devolvió el estado de salida 1
make: [magpar.exe] Error 1 (no tiene efecto)
porque es incompatible con mpicxx?
Gracias de antemano