Libstdc++.so.6: error adding symbols: dso missing from command line

Explanation of the error message “libstdc++.so.6: error adding symbols: dso missing from command line”

The error message “libstdc++.so.6: error adding symbols: dso missing from command line” typically occurs when you are trying to compile or link a program, and it is unable to find the necessary libraries or shared objects (“.so” files) for the libstdc++ (GNU Standard C++ Library).

Possible Causes

  • Missing or incorrect installation of libstdc++ library.
  • Incorrect compiler or linker flags.
  • Missing or incorrect library paths.

Solution Examples

1. Using GCC Compiler

If you are using the GCC compiler, you can try the following solutions:

    
      # If you are compiling a C++ program
      g++ your_program.cpp -o your_program -lstdc++
      
      # If you are linking against a shared object file
      g++ your_program.cpp -o your_program -L/path/to/libstdc++ -lstdc++
      
      # If you are using a Makefile, ensure you have the proper flags
      LDFLAGS = -L/path/to/libstdc++
      LDLIBS = -lstdc++
      your_program: your_program.cpp
      	$(CXX) $(CXXFLAGS) $(LDFLAGS) -o $@ $^ $(LDLIBS)
    
  

2. Using Clang Compiler

If you are using the Clang compiler, the options are similar:

    
      # If you are compiling a C++ program
      clang++ your_program.cpp -o your_program -lstdc++
      
      # If you are linking against a shared object file
      clang++ your_program.cpp -o your_program -L/path/to/libstdc++ -lstdc++
      
      # If you are using a Makefile, ensure you have the proper flags
      LDFLAGS = -L/path/to/libstdc++
      LDLIBS = -lstdc++
      your_program: your_program.cpp
      	$(CXX) $(CXXFLAGS) $(LDFLAGS) -o $@ $^ $(LDLIBS)
    
  

3. Adjusting Library Paths

Alternatively, you can add the library path to the LD_LIBRARY_PATH environment variable. For example:

    
      export LD_LIBRARY_PATH=/path/to/libstdc++:$LD_LIBRARY_PATH
    
  

Make sure to replace “/path/to/libstdc++” with the actual path where the libstdc++.so.6 library is located on your system.

By following these steps, you should be able to resolve the “libstdc++.so.6: error adding symbols: dso missing from command line” error and successfully compile or link your program.

Similar post

Leave a comment