Troubleshooting 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'

Details

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. Intel Advisor uses dynamic loading.

Possible Correction Strategies

  • Do the following:

    1. Add the linker option -ldl to your command line, script, or make file.

    2. Review the options listed in the help topic Building Settings for C/C++ Applications 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.

For more complete information about compiler optimizations, see our Optimization Notice.