[petsc-users] Petscmatlabengine, libicudata not found, undefined symbol mexPrintf
Barry Smith
bsmith at mcs.anl.gov
Tue Feb 15 20:25:11 CST 2011
On Feb 15, 2011, at 8:14 PM, Birendra jha wrote:
> Hi,
>
> I attached the output of ls -l. Below are the outputs of "file" command:
>
> bjha at ubuntu:~/src/pylith-dev/examples/3d/hex8$ file /home/bjha/MATLAB/R2010b/bin/glnx86/libicudata.so.42
> /home/bjha/MATLAB/R2010b/bin/glnx86/libicudata.so.42: symbolic link to `libicudata.so.42.1'
>
> bjha at ubuntu:~/src/pylith-dev/examples/3d/hex8$ file /home/bjha/MATLAB/R2010b/bin/glnx86/libicudata.so.42.1
> /home/bjha/MATLAB/R2010b/bin/glnx86/libicudata.so.42.1: ELF 32-bit LSB shared object, Intel 80386, version 1 (SYSV), dynamically linked, not stripped
Humm. Run file on some of the other libraries in that directory. Are they also ELF 32 bit? You can try editing ${PETSC_ARCH/conf/petscvariables and removing the reference to libicudata then run make test. It may not be needed.
Barry
>
>
> Thanks
> Bir
>
> --- On Wed, 2/16/11, Barry Smith <bsmith at mcs.anl.gov> wrote:
>
>> From: Barry Smith <bsmith at mcs.anl.gov>
>> Subject: Re: [petsc-users] Petscmatlabengine, libicudata not found, undefined symbol mexPrintf
>> To: "PETSc users list" <petsc-users at mcs.anl.gov>
>> Date: Wednesday, February 16, 2011, 7:26 AM
>>
>> On Feb 15, 2011, at 6:56 PM, Birendra jha wrote:
>>
>>> Dear Petsc users,
>>>
>>> I am getting "cannot find -licudata" error during
>> "make test" on petsc-dev, even when libicudata.so.42.1, and
>> its link, libicudata.so.42 are in
>> /home/bjha/MATLAB/R2010b/bin/glnx86. Petsc "make" was fine.
>>
>> Run ls -l /home/bjha/MATLAB/R2010b/bin/glnx86 and
>> send the output
>> also run file
>> /home/bjha/MATLAB/R2010b/bin/glnx86/libicudata.so.42
>>
>>>
>>> bjha at ubuntu:~/src/petsc-dev$ make
>> PETSC_DIR=/home/bjha/src/petsc-dev
>> PETSC_ARCH=linux_gcc-4.4.1_64 test
>>> Running test examples to verify correct installation
>>> --------------Error detected during compile or
>> link!-----------------------
>>> See http://www.mcs.anl.gov/petsc/petsc-2/documentation/faq.html
>>> mpicxx -o ex19.o -c -Wall -Wwrite-strings
>> -Wno-strict-aliasing -Wno-unknown-pragmas -g
>> -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64
>> -I/home/bjha/src/petsc-dev/include
>> -I/home/bjha/src/petsc-dev/linux_gcc-4.4.1_64/include
>> -I/home/bjha/src/petsc-dev/include/sieve
>> -I/home/bjha/MATLAB/R2010b/extern/include
>> -I/home/bjha/tools/gcc-4.4.1_64/include
>> -D__INSDIR__=src/snes/examples/tutorials/ ex19.c
>>> mpicxx -Wall -Wwrite-strings -Wno-strict-aliasing
>> -Wno-unknown-pragmas -g -o ex19
>> ex19.o
>> -L/home/bjha/src/petsc-dev/linux_gcc-4.4.1_64/lib
>> -lpetsc
>> -Wl,-rpath,/home/bjha/src/petsc-dev/linux_gcc-4.4.1_64/lib
>> -lparmetis -lmetis
>> -Wl,-rpath,/home/bjha/MATLAB/R2010b/sys/os/glnx86:/home/bjha/MATLAB/R2010b/bin/glnx86:/home/bjha/MATLAB/R2010b/extern/lib/glnx86
>> -L/home/bjha/MATLAB/R2010b/bin/glnx86
>> -L/home/bjha/MATLAB/R2010b/extern/lib/glnx86 -leng -lmex
>> -lmx -lmat -lut -licudata -licui18n -licuuc -lml -lchaco
>> -L/usr/lib/atlas -llapack_atlas -llapack -latlas -lblas
>> -L/home/bjha/tools/gcc-4.4.1_64/lib
>> -L/usr/lib/gcc/i486-linux-gnu/4.4.3
>> -L/usr/lib/i486-linux-gnu -ldl -lmpi -lopen-rte -lopen-pal
>> -lnsl -lutil -lgcc_s -lpthread -lmpi_f90 -lmpi_f77
>> -lgfortran -lm -lm -lm -lm -lmpi_cxx -lstdc++ -lmpi_cxx
>> -lstdc++ -ldl -lmpi -lopen-rte -lopen-pal -lnsl -lutil
>> -lgcc_s -lpthread -ldl
>>> /usr/bin/ld: cannot find -licudata
>>> collect2: ld returned 1 exit status
>>> make[3]: [ex19] Error 1 (ignored)
>>> /bin/rm -f ex19.o
>>> --------------Error detected during compile or
>> link!-----------------------
>>> See http://www.mcs.anl.gov/petsc/petsc-2/documentation/faq.html
>>> mpif90 -c -Wall -Wno-unused-variable
>> -g -I/home/bjha/src/petsc-dev/include
>> -I/home/bjha/src/petsc-dev/linux_gcc-4.4.1_64/include
>> -I/home/bjha/src/petsc-dev/include/sieve
>> -I/home/bjha/MATLAB/R2010b/extern/include
>> -I/home/bjha/tools/gcc-4.4.1_64/include -o
>> ex5f.o ex5f.F
>>> mpif90 -Wall -Wno-unused-variable
>> -g -o ex5f ex5f.o
>> -L/home/bjha/src/petsc-dev/linux_gcc-4.4.1_64/lib
>> -lpetsc
>> -Wl,-rpath,/home/bjha/src/petsc-dev/linux_gcc-4.4.1_64/lib
>> -lparmetis -lmetis
>> -Wl,-rpath,/home/bjha/MATLAB/R2010b/sys/os/glnx86:/home/bjha/MATLAB/R2010b/bin/glnx86:/home/bjha/MATLAB/R2010b/extern/lib/glnx86
>> -L/home/bjha/MATLAB/R2010b/bin/glnx86
>> -L/home/bjha/MATLAB/R2010b/extern/lib/glnx86 -leng -lmex
>> -lmx -lmat -lut -licudata -licui18n -licuuc -lml -lchaco
>> -L/usr/lib/atlas -llapack_atlas -llapack -latlas -lblas
>> -L/home/bjha/tools/gcc-4.4.1_64/lib
>> -L/usr/lib/gcc/i486-linux-gnu/4.4.3
>> -L/usr/lib/i486-linux-gnu -ldl -lmpi -lopen-rte -lopen-pal
>> -lnsl -lutil -lgcc_s -lpthread -lmpi_f90 -lmpi_f77
>> -lgfortran -lm -lm -lm -lm -lmpi_cxx -lstdc++ -lmpi_cxx
>> -lstdc++ -ldl -lmpi -lopen-rte -lopen-pal -lnsl -lutil
>> -lgcc_s -lpthread -ldl
>>> /usr/bin/ld: cannot find -licudata
>>> collect2: ld returned 1 exit status
>>> make[3]: [ex5f] Error 1 (ignored)
>>> /bin/rm -f ex5f.o
>>> Completed test examples
>>>
>>>
>>> It is correct that I didn't install matlab in the
>> default directory (/usr/local) because I had some permission
>> issues on Ubuntu. But I have been running matlab (by running
>> /MATLAB/R2010b/bin/matlab.sh) without any issues
>>> for some time now. So it should be that, I suppose.
>>>
>>> I still went ahead with compiling my application with
>> few lines of PetscMatlabEngine functions, just to test:
>>>
>>> PetscMatlabEngine e;
>>> PetscScalar *array; array[0]=0;
>>> const char name[]="a";
>>>
>> PetscMatlabEngineCreate(PETSC_COMM_WORLD,PETSC_NULL,&e);
>>> PetscMatlabEnginePutArray(e,1,1,array,name);
>>> PetscMatlabEngineGetArray(e,1,1,array,name);
>>> PetscMatlabEngineDestroy(e);
>>>
>>> Do I need to include any header file (e.g.
>> petscmatlab.h) in the header of my class file?
>>
>> No
>>
>>> Right now, the application compiled (make, make
>> install) fine without any such include file. The application
>> have been using Petsc for its solver without any issues, so
>> it includes all the necessary files. I just want to exten
>> the application to call some matlab scripts by using
>> PetscMatlabEngine.
>>>
>>> But, I get runtime error for mexPrintf:
>>>
>>> bjha at ubuntu:~/src/pylith-dev/examples/3d/hex8$ pylith
>> step06_pres.cfg
>>> Traceback (most recent call last):
>>> File "/home/bjha/tools/gcc-4.4.1_64/bin/pylith",
>> line 37, in <module>
>>> from pylith.apps.PyLithApp import
>> PyLithApp
>>> File
>> "/home/bjha/tools/gcc-4.4.1_64/lib/python2.6/site-packages/pylith/apps/PyLithApp.py",
>> line 23, in <module>
>>> from PetscApplication import
>> PetscApplication
>>> File
>> "/home/bjha/tools/gcc-4.4.1_64/lib/python2.6/site-packages/pylith/apps/PetscApplication.py",
>> line 27, in <module>
>>> class PetscApplication(Application):
>>> File
>> "/home/bjha/tools/gcc-4.4.1_64/lib/python2.6/site-packages/pylith/apps/PetscApplication.py",
>> line 41, in PetscApplication
>>> from pylith.utils.PetscManager import
>> PetscManager
>>> File
>> "/home/bjha/tools/gcc-4.4.1_64/lib/python2.6/site-packages/pylith/utils/PetscManager.py",
>> line 29, in <module>
>>> import pylith.utils.petsc as petsc
>>> File
>> "/home/bjha/tools/gcc-4.4.1_64/lib/python2.6/site-packages/pylith/utils/petsc.py",
>> line 25, in <module>
>>> _petsc = swig_import_helper()
>>> File
>> "/home/bjha/tools/gcc-4.4.1_64/lib/python2.6/site-packages/pylith/utils/petsc.py",
>> line 21, in swig_import_helper
>>> _mod = imp.load_module('_petsc', fp,
>> pathname, description)
>>> ImportError:
>> /home/bjha/tools/gcc-4.4.1_64/lib/libpylith.so.0: undefined
>> symbol: mexPrintf
>>
>> Somehow all the Matlab shared libraries need to be
>> found when python loads libpylith.so is loaded. I
>> don't know how this is done in Linux. It is really a python
>> question if you want to use a dynamic library in python that
>> uses another shared library how do you make sure python gets
>> all the shared libraries loaded to resolve the symbols?
>>
>> Barry
>>
>>>
>>>
>>> Can anyone help/suggest something?
>>>
>>> Thanks a lot
>>> Bir
>>>
>>>
>>>
>>
>>
>
>
> <MATLAB_R2010b_bin_glnx86_files.txt>
More information about the petsc-users
mailing list