- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hello. I am trying to compile a Windows raytracing sample on Linux. Theoretically, it shouldn't be a problem, right? So I added the four files to an Eclilpse Project and I started to compile and it gave me a linking error. It did the same when I did in the command line, so it's not an eclipse related problem. Could you give me some pointers what am I doing wrong? Here is, what happened:
Here is what I have in my .profile, I hope it's ok:
. /opt/intel/Compiler/11.0/074/bin/iccvars.sh intel64
. /opt/intel/Compiler/11.0/074/ipp/em64t/tools/env/ippvarsem64t.sh
export LC_ALL=C
export LANG=C
[shell]make -k all Building file: ../ext_rply.c Invoking: Intel Intel 64 C Compiler icc -I/usr/include -I/usr/lib/gcc/x86_64-linux-gnu/4.2/include -MMD -MP -MF"ext_rply.d" -MT"ext_rply.d" -c -o "ext_rply.o" "../ext_rply.c" ../ext_rply.c(1037): warning #188: enumerated type mixed with another type property->type = -1; ^ ../ext_rply.c(1038): warning #188: enumerated type mixed with another type property->length_type = -1; ^ ../ext_rply.c(1039): warning #188: enumerated type mixed with another type property->value_type = -1; ^ ../ext_rply.c(1097): warning #188: enumerated type mixed with another type ply->storage_mode = ply_find_string(BWORD(ply), ply_storage_mode_list); ^ ../ext_rply.c(1137): warning #188: enumerated type mixed with another type property->type = ply_find_string(BWORD(ply), ply_type_list); ^ ../ext_rply.c(1142): warning #188: enumerated type mixed with another type property->length_type = ply_find_string(BWORD(ply), ply_type_list); ^ ../ext_rply.c(1145): warning #188: enumerated type mixed with another type property->value_type = ply_find_string(BWORD(ply), ply_type_list); ^ Finished building: ../ext_rply.c Building file: ../ippr_readply.cpp Invoking: Intel Intel 64 C++ Compiler icpc -I/usr/include/c++/4.2 -I/opt/intel/Compiler/11.0/074/ipp/em64t/include -MMD -MP -MF"ippr_readply.d" -MT"ippr_readply.d" -c -o "ippr_readply.o" "../ippr_readply.cpp" Finished building: ../ippr_readply.cpp Building file: ../ippr_sample.cpp Invoking: Intel Intel 64 C++ Compiler icpc -I/usr/include/c++/4.2 -I/opt/intel/Compiler/11.0/074/ipp/em64t/include -MMD -MP -MF"ippr_sample.d" -MT"ippr_sample.d" -c -o "ippr_sample.o" "../ippr_sample.cpp" Finished building: ../ippr_sample.cpp Building target: Raytracer Invoking: Intel Intel 64 C++ Linker icpc -o"Raytracer" ./ext_rply.o ./ippr_readply.o ./ippr_sample.o ./ippr_sample.o: In function `main': ../ippr_sample.cpp:(.text+0x139): undefined reference to `ippStaticInit' ../ippr_sample.cpp:(.text+0x1ea): undefined reference to `ippGetCpuFreqMhz' ../ippr_sample.cpp:(.text+0x2f3): undefined reference to `ippiMalloc_32f_C3' ../ippr_sample.cpp:(.text+0x312): undefined reference to `ippiMalloc_32f_C3' ../ippr_sample.cpp:(.text+0x49d): undefined reference to `ippsMalloc_32s' ../ippr_sample.cpp:(.text+0x4b4): undefined reference to `ippsMalloc_32f' ../ippr_sample.cpp:(.text+0x8db): undefined reference to `ippGetCpuClocks' ../ippr_sample.cpp:(.text+0xa45): undefined reference to `ippsSet_32f' ../ippr_sample.cpp:(.text+0xa57): undefined reference to `ippsSet_32f' ../ippr_sample.cpp:(.text+0xa69): undefined reference to `ippsSet_32f' ../ippr_sample.cpp:(.text+0xa82): undefined reference to `ippsSet_32f' ../ippr_sample.cpp:(.text+0xad4): undefined reference to `ipprCastEye_32f' ../ippr_sample.cpp:(.text+0xaf1): undefined reference to `ippsSet_32f' ../ippr_sample.cpp:(.text+0xb39): undefined reference to `ipprIntersectEyeSO_32f' ../ippr_sample.cpp:(.text+0xb70): undefined reference to `ipprHitPoint3DEpsS0_32f_M' ../ippr_sample.cpp:(.text+0xb8e): undefined reference to `ipprSurfFlatNormal_32f' ../ippr_sample.cpp:(.text+0xbb1): undefined reference to `ipprDot_32f_P3C1M' ../ippr_sample.cpp:(.text+0xbc7): undefined reference to `ippsSet_32s' ../ippr_sample.cpp:(.text+0xbdd): undefined reference to `ippsSet_32s' ../ippr_sample.cpp:(.text+0xbf3): undefined reference to `ippsSet_32s' ../ippr_sample.cpp:(.text+0xdd4): undefined reference to `ippGetCpuClocks' ../ippr_sample.cpp:(.text+0xebd): undefined reference to `ippiResize_32f_C3R' ../ippr_sample.cpp:(.text+0x100c): undefined reference to `ippsMalloc_8u' ../ippr_sample.cpp:(.text+0x101c): undefined reference to `ippsSet_8u' ../ippr_sample.cpp:(.text+0x1200): undefined reference to `ippsFree' ../ippr_sample.cpp:(.text+0x1221): undefined reference to `ippiFree' ../ippr_sample.cpp:(.text+0x122e): undefined reference to `ippiFree' ../ippr_sample.cpp:(.text+0x123b): undefined reference to `ippsFree' ../ippr_sample.cpp:(.text+0x1248): undefined reference to `ippsFree' ../ippr_sample.cpp:(.text+0x1255): undefined reference to `ippsFree' ../ippr_sample.cpp:(.text+0x1262): undefined reference to `ippsFree' ../ippr_sample.cpp:(.text+0x127b): undefined reference to `ippsFree' ../ippr_sample.cpp:(.text+0x128a): undefined reference to `ipprKDTreeFree' ../ippr_sample.cpp:(.text+0x1292): undefined reference to `ippsFree' ../ippr_sample.cpp:(.text+0x129a): undefined reference to `ippsFree' ../ippr_sample.cpp:(.text+0x1374): undefined reference to `ippsSet_32f' ../ippr_sample.cpp:(.text+0x1391): undefined reference to `ippsSet_32f' ../ippr_sample.cpp:(.text+0x13b1): undefined reference to `ippsSet_32f' ../ippr_sample.cpp:(.text+0x13c9): undefined reference to `ippsCopy_32s' ../ippr_sample.cpp:(.text+0x140a): undefined reference to `ipprCastShadowSO_32f' ../ippr_sample.cpp:(.text+0x143e): undefined reference to `ipprIntersectAnySO_32f' ../ippr_sample.cpp:(.text+0x1745): undefined reference to `ippiCopy_32f_P3C3R' ../ippr_sample.cpp:(.text+0x1762): undefined reference to `ipprCastReflectionRay_32f' ../ippr_sample.cpp:(.text+0x1777): undefined reference to `ippsSet_32f' ../ippr_sample.cpp:(.text+0x1800): undefined reference to `ipprIntersectMO_32f' ../ippr_sample.cpp:(.text+0x1832): undefined reference to `ipprHitPoint3DEpsM0_32f_M' ../ippr_sample.cpp:(.text+0x18f4): undefined reference to `ipprCastReflectionRay_32f' ../ippr_sample.cpp:(.text+0x1943): undefined reference to `ipprDot_32f_P3C1M' ./ippr_sample.o: In function `populate_scene_context(char const*, sceneContext&, double, int)': ../ippr_sample.cpp:(.text+0x1cde): undefined reference to `read_plyfile(char const*, std::vector&, std::vector&)' ../ippr_sample.cpp:(.text+0x28ca): undefined reference to `ippsMalloc_32f' ../ippr_sample.cpp:(.text+0x291d): undefined reference to `ippsMalloc_32s' ../ippr_sample.cpp:(.text+0x29b3): undefined reference to `ippsMalloc_32f' ../ippr_sample.cpp:(.text+0x29d2): undefined reference to `ipprTriangleNormal_32f' ../ippr_sample.cpp:(.text+0x2a57): undefined reference to `ipprTriangleAccelGetSize' ../ippr_sample.cpp:(.text+0x2a61): undefined reference to `ippsMalloc_32s' ../ippr_sample.cpp:(.text+0x2a7d): undefined reference to `ippsMalloc_8u' ../ippr_sample.cpp:(.text+0x2abd): undefined reference to `ipprSetBoundBox_32f' ../ippr_sample.cpp:(.text+0x2ac2): undefined reference to `ippGetCpuClocks' ../ippr_sample.cpp:(.text+0x2ae0): undefined reference to `ipprTriangleAccelInit' ../ippr_sample.cpp:(.text+0x2bf4): undefined reference to `ippGetCpuClocks' ./ippr_sample.o: In function `kDTreeBuild_th(KDTreeNode**, float const*, int const*, int, int, int*, void const*, int, bool*)': ../ippr_sample.cpp:(.text+0x2db7): undefined reference to `ippsCopy_8u' ../ippr_sample.cpp:(.text+0x2e07): undefined reference to `ipprKDTreeBuildAlloc' ../ippr_sample.cpp:(.text+0x2eb2): undefined reference to `ipprKDTreeBuildAlloc' ../ippr_sample.cpp:(.text+0x2efb): undefined reference to `ippsCopy_8u' ../ippr_sample.cpp:(.text+0x2f3f): undefined reference to `ippsCopy_8u' ../ippr_sample.cpp:(.text+0x32e6): undefined reference to `ippsCopy_8u' ../ippr_sample.cpp:(.text+0x3356): undefined reference to `ipprKDTreeBuildAlloc' ../ippr_sample.cpp:(.text+0x33fe): undefined reference to `ippsMalloc_32s' ../ippr_sample.cpp:(.text+0x354c): undefined reference to `ipprKDTreeFree' ../ippr_sample.cpp:(.text+0x3593): undefined reference to `ipprKDTreeFree' ./ippr_sample.o: In function `free_thrnd_contexts(rndContext*)': ../ippr_sample.cpp:(.text+0x38ea): undefined reference to `ippsFree' ../ippr_sample.cpp:(.text+0x38f2): undefined reference to `ippsFree' ./ippr_sample.o: In function `free_scene_context(sceneContext&)': ../ippr_sample.cpp:(.text+0x3909): undefined reference to `ippsFree' ../ippr_sample.cpp:(.text+0x3912): undefined reference to `ippsFree' ../ippr_sample.cpp:(.text+0x391b): undefined reference to `ippsFree' ./ippr_sample.o:../ippr_sample.cpp:(.text+0x3924): more undefined references to `ippsFree' follow ./ippr_sample.o: In function `free_scene_context(sceneContext&)': ../ippr_sample.cpp:(.text+0x3940): undefined reference to `ipprKDTreeFree' ./ippr_sample.o: In function `write_output_image(char const*, float const*, IppiSize, int)': ../ippr_sample.cpp:(.text+0x3aa8): undefined reference to `ippsMalloc_8u' ../ippr_sample.cpp:(.text+0x3ab8): undefined reference to `ippsSet_8u' ../ippr_sample.cpp:(.text+0x3c89): undefined reference to `ippsFree' ./ippr_sample.o: In function `populate_thrnd_contexts(int, rndContext**)': ../ippr_sample.cpp:(.text+0x3d48): undefined reference to `ippsMalloc_32s' ../ippr_sample.cpp:(.text+0x3d5f): undefined reference to `ippsMalloc_32f' make: *** [Raytracer] Error 1 make: Target `all' not remade because of errors.[/shell]
Here is what I have in my .profile, I hope it's ok:
. /opt/intel/Compiler/11.0/074/bin/iccvars.sh intel64
. /opt/intel/Compiler/11.0/074/ipp/em64t/tools/env/ippvarsem64t.sh
export LC_ALL=C
export LANG=C
Link Copied
1 Reply
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Looking at the linking errors you've got, like ippGetCpuFreqMhz, ippiMalloc_32f_C3 and etc, you must link your application with libippcoreem64t.so libippsem64t.so libipprem64t.so libipprem64t.so
about linking with IPP, see more into userguide_lnx_ia32.pdf
--Gennady

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