- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi,
I was compiling my first Fortran program under Ubuntu, and got a compiler linking error:
/opt/intel/composer_xe_2011_sp1.7.256/compiler/lib/intel64/libifcore.so.5: undefined reference to `__intel_sse2_strchr'
which library shall I link to solve this problem ?
I've explicitly asked ifort to link with ifcore by: ifort -lifcore
Thank you and Appreciate your help !!!
Haining
Link Copied
3 Replies
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
This function should be defined in libirc, as it is in my Intel64 installation of this compiler.
The specification -lirc ought to be included automatically if you use ifort/icc/icpc to drive the link. You could check that by setting the additional option -# for your link step.
If you are not using an Intel compiler to drive the link step, you will need to add -lirc or equivalent.
If the ifort installation didn't automatically provide libirc.a and libirc.so, that would appear to be an installer bug. As I installed both ifort and icc for Intel64, I don't know whether both installers provide it.
The specification -lirc ought to be included automatically if you use ifort/icc/icpc to drive the link. You could check that by setting the additional option -# for your link step.
If you are not using an Intel compiler to drive the link step, you will need to add -lirc or equivalent.
If the ifort installation didn't automatically provide libirc.a and libirc.so, that would appear to be an installer bug. As I installed both ifort and icc for Intel64, I don't know whether both installers provide it.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
It seems the library libirc has strrchr, but not strchr:
nm /state/partition1/apps/intel/composerxe-2011.3.174/compiler/lib/intel64/libirc.so | grep intel_sse2
00000000000101d0 T __intel_sse2_stpcpy
0000000000010420 T __intel_sse2_stpncpy
000000000001d7d0 T __intel_sse2_strcat
000000000001a4d0 T __intel_sse2_strcpy
000000000001c560 T __intel_sse2_strcspn
000000000001dec0 T __intel_sse2_strdup
000000000001a7f0 T __intel_sse2_strend
000000000001b660 T __intel_sse2_stricmp
000000000001a740 T __intel_sse2_strlen
000000000001ae40 T __intel_sse2_strlwr
000000000001dac0 T __intel_sse2_strncat
000000000001a830 T __intel_sse2_strncmp
000000000001cc70 T __intel_sse2_strncpy
000000000001b970 T __intel_sse2_strnicmp
000000000001d050 T __intel_sse2_strnlen
000000000001d570 T __intel_sse2_strnset
000000000001e190 T __intel_sse2_strpbrk
000000000001cf90 T __intel_sse2_strrchr
000000000001d0d0 T __intel_sse2_strrev
000000000001d380 T __intel_sse2_strset
000000000001be10 T __intel_sse2_strspn
000000000001e8b0 T __intel_sse2_strtok
000000000001b250 T __intel_sse2_strupr
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Note that the library you showed the contents for is considerably older than the compiler you're using. In particular, it's from the 12.0 compiler but you compiled with 12.1. You should use the "source" command to make the proper set of binaries and libraries visible to your build environment.

Reply
Topic Options
- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Printer Friendly Page