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

Undefined reference to intel functions

Yuriy_K_
Beginner
1,654 Views

Hi,

When I'm trying to compile my code with optimization options(-On, -fast) i receive this messages:

some_source.cpp:(.text+0x196b): undefined reference to `__intel_sse2_strlen'
some_source.cpp:(.text+0x199d): undefined reference to `__intel_sse2_strcpy'
some_object.o: In function `SomeFunction(void*)':
some_source.cpp:(.text+0x1c9f): undefined reference to `__intel_sse2_strlen'
some_source.cpp:(.text+0x1cce): undefined reference to `__intel_sse2_strlen'
some_source.cpp:(.text+0x1d00): undefined reference to `__intel_sse2_strcpy'
some_source.cpp:(.text+0x1d31): undefined reference to `__intel_sse2_strcat'
some_object.o: In function `SomeFunctionTwo(std::string&)':
some_source.cpp:(.text+0x1ea5): undefined reference to `__intel_sse2_strlen'
some_source.o: In function `CPlatformUtils::IsDirectory(void*)':
some_source.cpp:(.text+0x2836): undefined reference to `__intel_sse2_strlen'
some_source.cpp:(.text+0x2866): undefined reference to `__intel_sse2_strlen'
some_source.cpp:(.text+0x289a): undefined reference to `__intel_sse2_strcpy'
some_source.cpp:(.text+0x28cd): undefined reference to `__intel_sse2_strcat'
some_source.o: In function `SomeFunctionThree(void*)':
some_source.cpp:(.text+0x292d): undefined reference to `__intel_sse2_strlen'
some_source.o: In function `SomeFunctionFour(void*&)':
some_source.cpp:(.text+0x2a04): undefined reference to `__intel_sse2_strncpy'
some_source.cpp:(.text+0x2a88): undefined reference to `__intel_sse2_strlen'
some_source.cpp:(.text+0x2ab6): undefined reference to `__intel_sse2_strlen'
some_source.cpp:(.text+0x2ae8): undefined reference to `__intel_sse2_strcpy'
some_source.cpp:(.text+0x2b19): undefined reference to `__intel_sse2_strcat'
some_source.o: In function `SomeFunctionFive(std::string const&)':
some_source.cpp:(.text+0x2d83): undefined reference to `__intel_sse2_strlen'
some_source.cpp:(.text+0x2db9): undefined reference to `__intel_sse2_strcpy'

Without optimization it works good. Can anyone explain me this?

 

0 Kudos
2 Replies
Bernard
Valued Contributor I
1,654 Views

@Yuriy

Please read this article  https://software.intel.com/en-us/articles/unresolved-external-symbol-_intel_sse2_strlen

0 Kudos
TimP
Honored Contributor III
1,654 Views

There have been past compiler releases which mistakenly omitted the SSE2 support library which would be needed when you don't specify an architecture such as -msse3 when compiling some_source.  When everything is correctly configured (setting environment variables by sourceing compilervars....), and you don't mix incompatible versions of icpc, icpc with consistent architecture flags would search the necessary libraries when linking.  Of course, you will need the same LD_LIBRARY_PATH setting at run time as well.

0 Kudos
Reply