Skip to content

Plugins not loading, although they have been successfully compiled #18

@illuminated

Description

@illuminated

Bug description
Cannot load plugins after successful compilation. pgModeler starts, but plugins are not loaded and error is reported before the main window opens.

My qmake was like this:

→ /usr/bin/qmake -r PREFIX=$INSTALLATION_ROOT BINDIR=$INSTALLATION_ROOT \
  PRIVATEBINDIR=$INSTALLATION_ROOT PRIVATELIBDIR=$INSTALLATION_ROOT/lib PLUGINSDIR=$INSTALLATION_ROOT/plugins pgmodeler.pro 
Reading /home/milan/Applications/pgmodeler/libutils/libutils.pro
Reading /home/milan/Applications/pgmodeler/libparsers/libparsers.pro
Reading /home/milan/Applications/pgmodeler/libpgmodeler/libpgmodeler.pro
Reading /home/milan/Applications/pgmodeler/libpgconnector/libpgconnector.pro
Reading /home/milan/Applications/pgmodeler/libobjrenderer/libobjrenderer.pro
Reading /home/milan/Applications/pgmodeler/libpgmodeler_ui/libpgmodeler_ui.pro
Reading /home/milan/Applications/pgmodeler/plugins/plugins.pro
 Reading /home/milan/Applications/pgmodeler/plugins/dummy/dummy.pro
 Reading /home/milan/Applications/pgmodeler/plugins/xml2object/xml2object.pro
 Reading /home/milan/Applications/pgmodeler/plugins/graphicalquerybuilder/graphicalquerybuilder.pro
Reading /home/milan/Applications/pgmodeler/crashhandler/crashhandler.pro
Reading /home/milan/Applications/pgmodeler/main-cli/main-cli.pro
Reading /home/milan/Applications/pgmodeler/main/main.pro

** pgModeler build details ** 
 
  PREFIX        = /home/milan/Apps/pgModeler 
  BINDIR        = /home/milan/Apps/pgModeler 
  PRIVATEBINDIR = /home/milan/Apps/pgModeler 
  PRIVATELIBDIR = /home/milan/Apps/pgModeler/lib 
  PLUGINSDIR    = /home/milan/Apps/pgModeler/plugins 
  SHAREDIR      = /home/milan/Apps/pgModeler/share/pgmodeler 
  CONFDIR       = /home/milan/Apps/pgModeler/share/pgmodeler/conf 
  DOCDIR        = /home/milan/Apps/pgModeler/share/pgmodeler 
  LANGDIR       = /home/milan/Apps/pgModeler/share/pgmodeler/lang 
  SAMPLESDIR    = /home/milan/Apps/pgModeler/share/pgmodeler/samples 
  SCHEMASDIR    = /home/milan/Apps/pgModeler/share/pgmodeler/schemas 
 
* To change a variable value run qmake again setting the desired value e.g.: 
  > qmake PREFIX+=/usr/local -r pgmodeler.pro 
 
* Proceed with build process by running: 
  >  make && make install 

Upon starting pgmodeler, I get the following stack trace:

[0] src/settings/pluginsconfigwidget.cpp (151)
  virtual void PluginsConfigWidget::loadConfiguration()
    [PluginsNotLoaded] One or more plugins were not activated due to errors during the loading process! Check the exception stack for more details.

[1] src/settings/pluginsconfigwidget.cpp (143)
  virtual void PluginsConfigWidget::loadConfiguration()
    [PluginNotLoaded] Could not load the plugin `xml2object' from the library `/home/milan/Apps/pgModeler/plugins/xml2object/libxml2object.so'! Message returned by plugin manager: `Cannot load library /home/milan/Apps/pgModeler/plugins/xml2object/libxml2object.so: (/lib/libpgmodeler.so.1: undefined symbol: _ZN12SchemaParser16CharIniAttributeE)'

[2] src/settings/pluginsconfigwidget.cpp (143)
  virtual void PluginsConfigWidget::loadConfiguration()
    [PluginNotLoaded] Could not load the plugin `graphicalquerybuilder' from the library `/home/milan/Apps/pgModeler/plugins/graphicalquerybuilder/libgraphicalquerybuilder.so'! Message returned by plugin manager: `Cannot load library /home/milan/Apps/pgModeler/plugins/graphicalquerybuilder/libgraphicalquerybuilder.so: (/lib/libpgmodeler.so.1: undefined symbol: _ZN12SchemaParser16CharIniAttributeE)'

[3] src/settings/pluginsconfigwidget.cpp (143)
  virtual void PluginsConfigWidget::loadConfiguration()
    [PluginNotLoaded] Could not load the plugin `dummy' from the library `/home/milan/Apps/pgModeler/plugins/dummy/libdummy.so'! Message returned by plugin manager: `Cannot load library /home/milan/Apps/pgModeler/plugins/dummy/libdummy.so: (/lib/libpgmodeler.so.1: undefined symbol: _ZN12SchemaParser16CharIniAttributeE)'

All the files, including plugins, are placed in correct places upon make install:

→ tree .
~/Apps/pgModeler
├── lib
│   ├── libcanvas.so -> libcanvas.so.1.0.0
│   ├── libcanvas.so.1 -> libcanvas.so.1.0.0
│   ├── libcanvas.so.1.0 -> libcanvas.so.1.0.0
│   ├── libcanvas.so.1.0.0
│   ├── libconnector.so -> libconnector.so.1.0.0
│   ├── libconnector.so.1 -> libconnector.so.1.0.0
│   ├── libconnector.so.1.0 -> libconnector.so.1.0.0
│   ├── libconnector.so.1.0.0
│   ├── libcore.so -> libcore.so.1.0.0
│   ├── libcore.so.1 -> libcore.so.1.0.0
│   ├── libcore.so.1.0 -> libcore.so.1.0.0
│   ├── libcore.so.1.0.0
│   ├── libgui.so -> libgui.so.1.0.0
│   ├── libgui.so.1 -> libgui.so.1.0.0
│   ├── libgui.so.1.0 -> libgui.so.1.0.0
│   ├── libgui.so.1.0.0
│   ├── libparsers.so -> libparsers.so.1.0.0
│   ├── libparsers.so.1 -> libparsers.so.1.0.0
│   ├── libparsers.so.1.0 -> libparsers.so.1.0.0
│   ├── libparsers.so.1.0.0
│   ├── libutils.so -> libutils.so.1.0.0
│   ├── libutils.so.1 -> libutils.so.1.0.0
│   ├── libutils.so.1.0 -> libutils.so.1.0.0
│   └── libutils.so.1.0.0
├── pgmodeler
├── pgmodeler-ch
├── pgmodeler-cli
├── pgmodeler-se
├── plugins
│   ├── dummy
│   │   ├── dummy.json
│   │   ├── dummy.png
│   │   ├── lang
│   │   │   ├── dummy.en_US.qm
│   │   │   └── dummy.en_US.ts
│   │   └── libdummy.so
│   ├── graphicalquerybuilder
│   │   ├── graphicalquerybuilder.json
│   │   ├── graphicalquerybuilder.png
│   │   ├── lang
│   │   │   ├── graphicalquerybuilder.en_US.qm
│   │   │   └── graphicalquerybuilder.en_US.ts
│   │   └── libgraphicalquerybuilder.so
│   └── xml2object
│       ├── libxml2object.so
│       ├── xml2object.json
│       └── xml2object.png
└── share
    └── pgmodeler
        ├── CHANGELOG.md
        ├── conf
        │   ├── connections.conf
        │   ├── defaults
        │   │   ├── connections.conf
        │   │   ├── diff-presets.conf
        │   │   ├── example.dbm
        │   │   ├── objects-style.conf
        │   │   ├── pattern-highlight.conf
        │   │   ├── pgmodeler.conf
        │   │   ├── relationships.conf
        │   │   ├── sch-highlight.conf
        │   │   ├── snippets.conf
        │   │   ├── sql-highlight.conf
        │   │   ├── ui-style.conf
        │   │   └── xml-highlight.conf
        │   ├── diff-presets.conf
        │   ├── dtd
        │   │   ├── connections.dtd
        │   │   ├── diff-presets.dtd
        │   │   ├── objects-style.dtd
        │   │   ├── pgmodeler.dtd
        │   │   ├── relationships.dtd
        │   │   ├── snippets.dtd
        │   │   ├── source-code-highlight.dtd
        │   │   └── sql-history.dtd
        │   ├── example.dbm
        │   ├── objects-style.conf
        │   ├── pattern-highlight.conf
        │   ├── pgmodeler.conf
        │   ├── pgmodeler_dbm.png
        │   ├── pgmodeler_logo.png
        │   ├── pgmodeler_sch.png
        │   ├── relationships.conf
        │   ├── schemas
        │   │   ├── application-dbm.sch
        │   │   ├── application-sch.sch
        │   │   ├── commands.sch
        │   │   ├── connections.sch
        │   │   ├── desktop.sch
        │   │   ├── desktop-sch.sch
        │   │   ├── diff-presets.sch
        │   │   ├── file.sch
        │   │   ├── objects-style.sch
        │   │   ├── patterns.sch
        │   │   ├── pgmodeler.sch
        │   │   ├── preset.sch
        │   │   ├── relationships.sch
        │   │   ├── snippet.sch
        │   │   ├── snippets.sch
        │   │   ├── sql-history.sch
        │   │   └── widget.sch
        │   ├── sch-highlight.conf
        │   ├── snippets.conf
        │   ├── sql-highlight.conf
        │   ├── ui-style.conf
        │   └── xml-highlight.conf
        ├── lang
        │   ├── es_ES.qm
        │   ├── es_ES.ts
        │   ├── fr_FR.qm
        │   ├── fr_FR.ts
        │   ├── nl_NL.qm
        │   ├── nl_NL.ts
        │   ├── pt_BR.qm
        │   ├── pt_BR.ts
        │   ├── zh_CN.qm
        │   └── zh_CN.ts
        ├── LICENSE
        ├── README.md
        ├── RELEASENOTES.md
        ├── samples
        │   ├── 3dcitydb.dbm
        │   ├── demo.dbm
        │   ├── oldsample.dbm
        │   ├── pagila.dbm
        │   └── usda.dbm
        └── schemas
            ├── alter
            │   ├── collation.sch
            │   ├── column.sch
            │   ├── confparam.sch
            │   ├── constraint.sch
            │   ├── database.sch
            │   ├── diff.sch
            │   ├── domain.sch
            │   ├── domconstraint.sch
            │   ├── eventtrigger.sch
            │   ├── extension.sch
            │   ├── foreigndatawrapper.sch
            │   ├── foreignserver.sch
            │   ├── foreigntable.sch
            │   ├── function.sch
            │   ├── index.sch
            │   ├── owner.sch
            │   ├── permission.sch
            │   ├── policy.sch
            │   ├── procedure.sch
            │   ├── relationship.sch
            │   ├── rename.sch
            │   ├── rolemembers.sch
            │   ├── role.sch
            │   ├── schema.sch
            │   ├── sequence.sch
            │   ├── table.sch
            │   ├── tablespace.sch
            │   ├── truncate.sch
            │   ├── usermapping.sch
            │   └── usertype.sch
            ├── catalog
            │   ├── aggregate.sch
            │   ├── cast.sch
            │   ├── collation.sch
            │   ├── column.sch
            │   ├── comment.sch
            │   ├── constraint.sch
            │   ├── conversion.sch
            │   ├── database.sch
            │   ├── domain.sch
            │   ├── eventtrigger.sch
            │   ├── extension.sch
            │   ├── foreigndatawrapper.sch
            │   ├── foreignserver.sch
            │   ├── foreigntable.sch
            │   ├── function.sch
            │   ├── index.sch
            │   ├── language.sch
            │   ├── notextobject.sch
            │   ├── objcount.sch
            │   ├── opclass.sch
            │   ├── operator.sch
            │   ├── opfamily.sch
            │   ├── policy.sch
            │   ├── procedure.sch
            │   ├── role.sch
            │   ├── rule.sch
            │   ├── schema.sch
            │   ├── sequence.sch
            │   ├── server.sch
            │   ├── table.sch
            │   ├── tablespace.sch
            │   ├── template.sch
            │   ├── transform.sch
            │   ├── trigger.sch
            │   ├── usermapping.sch
            │   ├── usertype.sch
            │   └── view.sch
            ├── datadict
            │   ├── column.sch
            │   ├── constraint.sch
            │   ├── datadict.sch
            │   ├── index.sch
            │   ├── item.sch
            │   ├── link.sch
            │   ├── styles.sch
            │   ├── table.sch
            │   └── view.sch
            ├── sql
            │   ├── aggregate.sch
            │   ├── cast.sch
            │   ├── collation.sch
            │   ├── column.sch
            │   ├── comment.sch
            │   ├── confparam.sch
            │   ├── constraint.sch
            │   ├── conversion.sch
            │   ├── database.sch
            │   ├── dbmodel.sch
            │   ├── domain.sch
            │   ├── domconstraint.sch
            │   ├── drop.sch
            │   ├── element.sch
            │   ├── eventtrigger.sch
            │   ├── excelement.sch
            │   ├── extension.sch
            │   ├── foreigndatawrapper.sch
            │   ├── foreignserver.sch
            │   ├── foreigntable.sch
            │   ├── function.sch
            │   ├── genericsql.sch
            │   ├── idxelement.sch
            │   ├── index.sch
            │   ├── language.sch
            │   ├── opclass.sch
            │   ├── operator.sch
            │   ├── opfamily.sch
            │   ├── parameter.sch
            │   ├── partitionkey.sch
            │   ├── permission.sch
            │   ├── policy.sch
            │   ├── procedure.sch
            │   ├── relationship.sch
            │   ├── role.sch
            │   ├── rule.sch
            │   ├── schema.sch
            │   ├── sequence.sch
            │   ├── sessionopts.sch
            │   ├── table.sch
            │   ├── tablespace.sch
            │   ├── transform.sch
            │   ├── trigger.sch
            │   ├── typeattribute.sch
            │   ├── usermapping.sch
            │   ├── usertype.sch
            │   └── view.sch
            └── xml
                ├── aggregate.sch
                ├── appendedsql.sch
                ├── basetype.sch
                ├── cast.sch
                ├── changelog.sch
                ├── collation.sch
                ├── column.sch
                ├── comment.sch
                ├── confparam.sch
                ├── constraint.sch
                ├── conversion.sch
                ├── customidxs.sch
                ├── database.sch
                ├── dbmodel.sch
                ├── domain.sch
                ├── domconstraint.sch
                ├── dtd
                │   ├── aggregate.dtd
                │   ├── baseelements.dtd
                │   ├── basetype.dtd
                │   ├── cast.dtd
                │   ├── changelog.dtd
                │   ├── collation.dtd
                │   ├── column.dtd
                │   ├── constraint.dtd
                │   ├── conversion.dtd
                │   ├── customidxs.dtd
                │   ├── database.dtd
                │   ├── dbmodel.dtd
                │   ├── domain.dtd
                │   ├── element.dtd
                │   ├── eventtrigger.dtd
                │   ├── extension.dtd
                │   ├── foreigndatawrapper.dtd
                │   ├── foreignserver.dtd
                │   ├── foreigntable.dtd
                │   ├── function.dtd
                │   ├── genericsql.dtd
                │   ├── index.dtd
                │   ├── label.dtd
                │   ├── language.dtd
                │   ├── metadata.dtd
                │   ├── object.dtd
                │   ├── opclass.dtd
                │   ├── operator.dtd
                │   ├── opfamily.dtd
                │   ├── parameter.dtd
                │   ├── permission.dtd
                │   ├── policy.dtd
                │   ├── procedure.dtd
                │   ├── relationship.dtd
                │   ├── role.dtd
                │   ├── rule.dtd
                │   ├── schema.dtd
                │   ├── sequence.dtd
                │   ├── table.dtd
                │   ├── tablespace.dtd
                │   ├── tag.dtd
                │   ├── textbox.dtd
                │   ├── transform.dtd
                │   ├── trigger.dtd
                │   ├── usermapping.dtd
                │   ├── usertype.dtd
                │   └── view.dtd
                ├── element.sch
                ├── entry.sch
                ├── eventtrigger.sch
                ├── excelement.sch
                ├── extension.sch
                ├── foreigndatawrapper.sch
                ├── foreignserver.sch
                ├── foreigntable.sch
                ├── function.sch
                ├── genericsql.sch
                ├── idxelement.sch
                ├── index.sch
                ├── info.sch
                ├── label.sch
                ├── language.sch
                ├── metadata.sch
                ├── object.sch
                ├── opclass.sch
                ├── operator.sch
                ├── opfamily.sch
                ├── parameter.sch
                ├── partitionkey.sch
                ├── permission.sch
                ├── policy.sch
                ├── position.sch
                ├── prependedsql.sch
                ├── procedure.sch
                ├── reference.sch
                ├── reftable.sch
                ├── relationship.sch
                ├── role.sch
                ├── rule.sch
                ├── schema.sch
                ├── sequence.sch
                ├── style.sch
                ├── table.sch
                ├── tablespace.sch
                ├── tag.sch
                ├── textbox.sch
                ├── transform.sch
                ├── trigger.sch
                ├── typeattribute.sch
                ├── usermapping.sch
                ├── usertype.sch
                └── view.sch

22 directories, 343 files

How to reproduce
Checkout the current 0.9.4-beta1 branch, setup plugins and compile.

Expected behavior
pgmodeler starts with plugins.

Info about your desktop

  • OS: Linux Mint
  • Version: 20.2
  • Window manager: not applicable
  • pgModeler version: v0.9.4-beta1
  • Qt version: Qt 5.12.8 (x86_64-little_endian-lp64 shared (dynamic) release build; by GCC 9.3.0) on "xcb"

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions