User Guide

Contents

Undefined Linker References to dlopen or dlsym

Symptoms

When linking your application program on Linux* OS, you see linker (
ld
) messages such as:
  • undefined reference to `dlopen'
  • undefined reference to `dlsym'

Cause

Intel® Advisor
uses dynamic loading. After you add the
#include
(C/C++) line to include the
Intel® Advisor
annotation definition file, you must specify the linker option
-ldl
to enable dynamic loading.
In most cases, you do not need source annotations when using
Intel® Advisor
, except for the Suitability analysis of the
Threading
perspective. When analyzing your application with other perspectives, such as
Vectorization and Code Insights
or
Offload Modeling
, you can analyze all parts of your code automatically or use
Intel Advisor
mark-up capabilities, which do not require you to recompile your application.

Possible Solution

  • Do the following:
    1. Add the linker option
      -ldl
      to your command line, script, or make file.
    2. Review the options listed in the Build Your Target Application to ensure that you specified all required compiler and linker options (use the link below under See Also). If omitted, add missing options to your command line, script, or make file.
    3. Rebuild your program.

Product and Performance Information

1

Performance varies by use, configuration and other factors. Learn more at www.Intel.com/PerformanceIndex.