Software Archive
Read-only legacy content
17061 Discussions

Missing Symbol when using unsigned integers as index in parallel for-loops

CaptainCore
Beginner
569 Views
When I'm using unsigned index-variables in optimized for-loops as it is allowed in OMP 3.0 the linker can't find the symbol "___kmpc_for_static_init_4u". Changing to signed integer will remove the problem. I linked with the libraries mkl_intel_c.lib, mkl_intel_thread.lib, mkl_core.lib. What's going wrong there ?
0 Kudos
2 Replies
Yuan_C_Intel
Employee
569 Views
Quoting - CaptainCore
When I'm using unsigned index-variables in optimized for-loops as it is allowed in OMP 3.0 the linker can't find the symbol "___kmpc_for_static_init_4u". Changing to signed integer will remove the problem. I linked with the libraries mkl_intel_c.lib, mkl_intel_thread.lib, mkl_core.lib. What's going wrong there ?

Hi, CaptainCore

This is one of the restrictions that OpenMP places on which loops can be threaded. The loop variable must be of type signed integer. Unsigned integers, such as DWORDS's will not work.

Thank you.
0 Kudos
Yuan_C_Intel
Employee
569 Views

Hi, CaptainCore

Sorry misunderstood your problem previously. This restriction should be removedfor OpenMP version 3.0 and Intel C++ Compiler now provide Intel-specific extensions to the OpenMP Version 3.0 specification.

So thank you forraising this issue. Could you provide a small test case to demonstrate the issue. I cannot reproduceand isolate the problemwithout your test case.

Thank you.
0 Kudos
Reply