Foros del Web » Programación para mayores de 30 ;) » C/C++ »

Error en enlazado

Estas en el tema de Error en enlazado en el foro de C/C++ en Foros del Web. 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. ...
  #1 (permalink)  
Antiguo 15/11/2008, 05:45
 
Fecha de Ingreso: noviembre-2008
Mensajes: 2
Antigüedad: 15 años, 5 meses
Puntos: 0
Error en enlazado

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
  #2 (permalink)  
Antiguo 15/11/2008, 06:04
 
Fecha de Ingreso: noviembre-2008
Mensajes: 2
Antigüedad: 15 años, 5 meses
Puntos: 0
Respuesta: Error en enlazado

root@ubuntu-desktop:/home/ubuntu/Escritorio/Proyecto/16-05-08/magpar-0_7/libs/pagridL/Lib# nm libpagrid.a

graph_func.o:
00000000 T LIBG_Allocate
000000f0 T LIBG_Free
00000130 T LIBG_Init
000001c0 T LIBG_Read
U MEM_Allocate
U MEM_Free
U MEM_Init
U U_Warning
00000004 C U_col
U U_error
U U_free
00000004 C U_line
00000004 C U_size
U U_smalloc
U __MEM_Need
U __MEM_Request
U exit
U feof
U fgets
U printf
U puts
U sscanf
U strlen
U strtol


donde 00000130 T LIBG_Init es la funcion que esta llamando desde parteleser de magpar
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 21:39.