Intel® Integrated Performance Primitives
Deliberate problems developing high-performance vision, signal, security, and storage applications.

Linking problems in IPP example code: "ipp_resize_mt.cpp" on OSX 10.13.6.

spence__ian
Beginner
661 Views

Hi,

Re: Safe C functions in IPP file vm_base.c link problems

First, I understand "libcommon.a" must be built. In using "common.xcodeproj", there's a build error:

"

In file included from /opt/intel/compilers_and_libraries_2019.5.281/mac/ipp/components/common/include/safestring/safe_lib.h:67:

/opt/intel/compilers_and_libraries_2019.5.281/mac/ipp/components/common/include/safestring/safe_mem_lib.h:62:16: error: conflicting types for 'memset_s'

extern errno_t memset_s(void *dest, rsize_t dmax, uint8_t value);

In module 'Darwin' imported from /opt/intel/compilers_and_libraries_2019.5.281/mac/ipp/components/common/include/vm_base.h:32:

/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.14.sdk/usr/include/string.h:145:9: note: previous declaration is here

errno_t memset_s(void *__s, rsize_t __smax, int __c, rsize_t __n) __OSX_AVAILABLE_STARTING(__MAC_10_9, __IPHONE_7_0);

"

Commenting out: extern errno_t memset_s(void *dest, rsize_t dmax, uint8_t value)  in "/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.14.sdk/usr/include/string.h" enables a successful build of libcommon.a

Now, when linking, getting this error:

"

ian$ clang++ src/ipp_resize_mt.cpp -I/opt/intel/compilers_and_libraries_2019.5.281/mac/ipp/include -I/opt/intel/compilers_and_libraries_2019.5.281/mac/ipp/components/common/include -L/opt/intel/compilers_and_libraries_2019.5.281/mac/ipp/lib -lippi -lipps -lippcore -stdlib=libc++ /opt/intel/compilers_and_libraries_2019.5.281/mac/ipp/components/common/build/Release/libcommon.a

Undefined symbols for architecture x86_64:
  "__vsctprintf", referenced from:
      _vm_string_vsnprintf in libcommon.a(vm_base.o)
  "_memcpy_s", referenced from:
      _vm_memcpy in libcommon.a(vm_base.o)
  "_strncpy_s", referenced from:
      _vm_string_strncpy in libcommon.a(vm_base.o)
  "_vsnprintf_s", referenced from:
      _vm_string_vsnprintf in libcommon.a(vm_base.o)
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)

"

Any ideas would be greatly appreciated.

Thanks for looking,

Ian

 

0 Kudos
2 Replies
Ivan_G_Intel1
Employee
661 Views

Hello, Ian!
Thank you for reporting an issue, we will check it on our side.

Best regards,
Ivan Galanin.

0 Kudos
Ivan_G_Intel1
Employee
661 Views

Hello, Ian!

vsctprintf, memcpy_s, strncpy_s and vsnprintf_s are members of stdlib. Did you try to compile and build any other application, for example, a simple "Hello, World!" program?

Best regards,
Ivan Galanin.

 

0 Kudos
Reply