Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

libstdc++: DSO missing from command line

Tags:

I am having trouble implementing a gtkmm application's makefile. I have implemented a simple solution, however, I am getting the following error:

g++ -Wall -std=c++11 pkg-config gtkmm-3.0 --cflags -c main.cpp

cc main.o pkg-config gtkmm-3.0 --libs -o main

/usr/bin/ld: main.o: undefined reference to symbol '__gxx_personality_v0@@CXXABI_1.3'

/usr/lib/x86_64-linux-gnu/libstdc++.so.6: error adding symbols: DSO missing from command line

collect2: error: ld returned 1 exit status

: recipe for target 'main' failed

make: *** [main] Error 1

Makefile:

# Compiler CXX = g++ CXXFLAGS = -Wall -std=c++11 `pkg-config gtkmm-3.0 --cflags`  # gtkmm library flags LDLIBS = `pkg-config gtkmm-3.0 --libs`  PROGRAM = main SRCS = $(wildcard *.cpp) OBJS = $(SRCS:.cpp=.o) DEPEND = .depend  .PHONY: clean  $(PROG): $(OBJS)     $(CXX) $^ -o $@ $(LDLIBS)  # Object file rules: .cpp.o:     $(CXX) $(CXXFLAGS) -c $<  # Dependencies .depend:     rm -f ./.depend     $(CXX) $(CXXFLAGS) -MM $(SRCS) > $(DEPEND)  all: .depend $(PROGRAM)  clean:     rm -f $(OBJS)     rm -f $(PROGRAM)     rm -f $(DEPEND)  -include $(DEPEND) 

main.cpp:

#include <gtkmm/application.h>  #include "MainWindow.hpp"  int main(int argc, char *argv[]) {   Glib::RefPtr<Gtk::Application> app = Gtk::Application::create(argc, argv, "org.gtkmm.examples.base");    MainWindow window;    // Show windows and return when closed   return app->run(window); } 

MainWindow.hpp:

#ifndef GUI_MAIN_WINDOW_H #define GUI_MAIN_WINDOW_H  #include <gtkmm.h>  class MainWindow: public Gtk::Window {    public:     MainWindow();     virtual ~MainWindow();    protected:     Gtk::Frame frame;  };  #endif // GUI_MAIN_WINDOW_H 

MainWindow.cpp:

#include "MainWindow.hpp"  MainWindow::MainWindow() {   // Set window properties   set_title("Main window");   set_size_request(300, 300);    // Set window border width   set_border_width(10);    // Add frame   add(frame);    // Set frame's label   frame.set_label("Frame");    // Align the label at the right of the frame   frame.set_label_align(Gtk::ALIGN_END, Gtk::ALIGN_START);    // Set the style of the frame   frame.set_shadow_type(Gtk::SHADOW_ETCHED_OUT);    show_all_children(); }  MainWindow::~MainWindow() {   // Nothing to do here } 

What am I doing wrong?

like image 513
wolx Avatar asked Oct 21 '15 15:10

wolx


2 Answers

I met the same issue when built openCV libraries

$ gcc DisplayImage.cpp `pkg-config opencv --libs --cflags` -o DisplayImage /usr/bin/ld: /tmp/ccbyJ7Ms.o: undefined reference to symbol '_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev@@GLIBCXX_3.4.21' //usr/lib/i386-linux-gnu/libstdc++.so.6: error adding symbols: DSO missing from command line collect2: error: ld returned 1 exit status 

[SOLVE]

For gcc try adding -lstdc++ to your command.

$ gcc DisplayImage.cpp `pkg-config opencv --libs --cflags` -o DisplayImage -lstdc++ 

For g++ it will link libstdc.so.6++ automatically

$ g++ DisplayImage.cpp `pkg-config opencv --libs --cflags` -o DisplayImage 
like image 132
Tạ Lục Gia Hoàng Avatar answered Oct 21 '22 02:10

Tạ Lục Gia Hoàng


I had same problem it was solved by addiing -lstdc++ in command line.

like image 22
Anil Patil Avatar answered Oct 21 '22 01:10

Anil Patil