I'm trying to create a plugin got mbarcode. I united all the four files of the example into one .cpp and compiled it: g++ -Wall -c mb.cpp -o mb.so No warnings, no errors. The resulting file mb.so I put into /usr/share/mbarcode/plugins , nearby other plugins (the only difference is that other plugins have debug=false, and my mb.so has debug=true). But I see no sign whatsoever that the new file is noticed; it doesn't add an entry into the list of results after scanning. Why is it so? Should I register my plugin somewhere? Should I use other options for g++? I understand that it looks strange to use neither qmake nor make, but it's a small file, and I want to understand what is going on, instead of creating additional files: .pro, Makefile, etc.