Intel® C++ Compiler
Community support and assistance for creating C++ code that runs on platforms based on Intel® processors.

Linking error undefined symbol -__intel_sse2_str_chr

Ashwin_D_
Beginner
2,074 Views

I have python3.4 which I compiled on my own using Intel icc. I have installed netcdf4 library for python on my Ubuntu 14.04. The install works fine and when I run it I get the error below

 

This is my LD_LIBRARY_PATH setenv LD_LIBRARY_PATH /usr/local/lib:/usr/lib/x86_64-linux-gnu/libgfortran.so.3

 

Do I need to add anything to LD_LIBRARY_PATH ?

 

Traceback (most recent call last):
  File "display.py", line 5, in <module>
    from netCDF4 import Dataset  # http://code.google.com/p/netcdf4-python/
  File "/usr/local/lib/python3.4/dist-packages/netCDF4/__init__.py", line 3, in <module>
    from ._netCDF4 import *
  File "netCDF4/_netCDF4.pyx", line 942, in init netCDF4._netCDF4 (netCDF4/_netCDF4.c:76006)
  File "/usr/local/lib/python3.4/dist-packages/netcdftime/__init__.py", line 1, in <module>
    from .netcdftime import utime, JulianDayFromDate, DateFromJulianDay
  File "/usr/local/lib/python3.4/dist-packages/netcdftime/netcdftime.py", line 14, in <module>
    from ._datetime import datetime
ImportError: /usr/local/lib/python3.4/dist-packages/netcdftime/_datetime.cpython-34m.so: undefined symbol: __intel_sse2_strchr

 

0 Kudos
4 Replies
Ashwin_D_
Beginner
2,074 Views

I updated my LD_LIBRARY_PATH to include libirc.so and now it looks like this

 

/opt/intel/composer_xe_2013_sp1.3.174/compiler/lib/intel64:/opt/intel/composer_xe_2013_sp1.3.174/mpirt/lib/intel64:/opt/intel/composer_xe_2013_sp1.3.174/compiler/lib/intel64:/opt/intel/composer_xe_2013_sp1.3.174/mpirt/lib/intel64:/usr/local/lib:/usr/lib/x86_64-linux-gnu/libgfortran.so.3:/opt/intel/composer_xe_2013_sp1.3.174/compiler/lib/intel64/libirc.so

It appears it is there. So where am I going wrong ?

and when I do a nm libirc.so | grep intel_sse2

 

0000000000017560 T __intel_sse2_stpcpy
0000000000017690 T __intel_sse2_stpncpy
0000000000016e80 T __intel_sse2_strcat
0000000000016af0 T __intel_sse2_strchr
00000000000167f0 T __intel_sse2_strcpy
00000000000158b0 T __intel_sse2_strcspn
0000000000017400 T __intel_sse2_strdup
0000000000016b30 T __intel_sse2_strend
0000000000016ac0 T __intel_sse2_strlen
0000000000017100 T __intel_sse2_strncat
0000000000016b50 T __intel_sse2_strncmp
0000000000016920 T __intel_sse2_strncpy
0000000000017810 T __intel_sse2_strnlen
0000000000015cf0 T __intel_sse2_strpbrk
0000000000016e30 T __intel_sse2_strrchr
0000000000015470 T __intel_sse2_strspn
0000000000016140 T __intel_sse2_strtok

0 Kudos
TimP
Honored Contributor III
2,074 Views

Are you setting paths in accordance with sourcing the compilervars.sh script in your icc installation?  You're quoting path without the required : separators.

0 Kudos
Ashwin_D_
Beginner
2,074 Views

Tim - the LD_LIBRARY_PATH does have the required ": separators yes.

 


 

0 Kudos
Judith_W_Intel
Employee
2,074 Views

 

The LD_LIBRARY_PATH should contain the directory where the library resides it looks like you have specified the library itself not the directory, i.e.:

/opt/intel/composer_xe_2013_sp1.3.174/compiler/lib/intel64:/opt/intel/composer_xe_2013_sp1.3.174/mpirt/lib/intel64:/opt/intel/composer_xe_2013_sp1.3.174/compiler/lib/intel64:/opt/intel/composer_xe_2013_sp1.3.174/mpirt/lib/intel64:/usr/local/lib:/usr/lib/x86_64-linux-gnu/libgfortran.so.3:/opt/intel/composer_xe_2013_sp1.3.174/compiler/lib/intel64/libirc.so

                                                                                                                                ^^^^^^^^  remove this

should be:

/opt/intel/composer_xe_2013_sp1.3.174/compiler/lib/intel64:/opt/intel/composer_xe_2013_sp1.3.174/mpirt/lib/intel64:/opt/intel/composer_xe_2013_sp1.3.174/compiler/lib/intel64:/opt/intel/composer_xe_2013_sp1.3.174/mpirt/lib/intel64:/usr/local/lib:/usr/lib/x86_64-linux-gnu/libgfortran.so.3:/opt/intel/composer_xe_2013_sp1.3.174/compiler/lib/intel64

Judy

 

 

0 Kudos
Reply