You probably don't need to link with non-pic libraries, unless you build a kernel-mode application like a driver. Regarding unresolved references, please check the order of IPP libs in linker command line: -lippi -lipps -lippvm -lippcore. The other ordering may lead to unresolved symbols.

I have asked our QAs regarding this topic. They are trying to reproduce and answer.

As for pic/non-pic libraries, you can use them both - they are tested equally during package preparation. But major area of non-pic libraries usage is kernel-mode execution. Though, I don't know much here.

g++ --version
g++ (Ubuntu/Linaro 4.6.3-1ubuntu5) 4.6.3
Copyright (C) 2011 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

In the IPP User Guide you see: "After installing Intel IPP, set the environment variables by running the script appropriate to your target platform architecture. The scripts are available in <install_dir>/ipp/bin."

So you should go to /opt/intel/composer/ipp/bin and run ippenv.sh script to set IPP environment

ippvars.sh script setup IPPROOT and LD_LIBRARY_PATH environment to simplify work with IPP libraries. You can setup this variables in your profile file and no necessary to run ippvars.sh each time in this case.