通过KDE插件库加载插件的PATH

时间:2013-12-03 04:08:06

标签: plugins kde

我正在调试由(IIRC)KDEPluginLoader类加载的插件。

问题在于,每当我对插件进行修改时,都不会看到它们。

这是因为应用程序正在从“系统插件区域”加载插件。我不想把这个插件放在那个区域。 (而且我真的不应该这样做。)但是lsof指向系统区域中的插件。

如何让应用程序首先从编译目录加载插件?

1 个答案:

答案 0 :(得分:0)

默认插件文件夹

全局路径旁边,例如

/usr/share/kde4/services/*.desktop
/usr/lib64/kde4/*.so

也扫描本地路径,即

~/.kde4/share/kde4/services/*.desktop
~/.kde4/lib64/kde4/*.so

第一次将库复制到其中一个路径时,必须启动kbuildsycoca4(代表:K Build SYstem COnfiguration CAche)。 KDE的插件系统使用此缓存来快速搜索服务(插件)。

请注意,.desktop文件中的信息必须指向正确的库文件名。例如,/usr/share/kde4/services/ktexteditor_hlselection.desktop说:

X-KDE-Library=ktexteditor_hlselection

因此KDE的插件架构将寻找:

/usr/lib64/kde4/ktexteditor_hlselection.so
~/.kde4/lib64/kde4/ktexteditor_hlselection.so

主文件夹中的那个具有更高的优先级。

自定义插件文件夹

您可以告诉KDE查看服务(.desktop文件)和库(* .so文件)的更多文件夹。这需要您设置多个环境文件夹,例如:

export LD_LIBRARY_PATH=/home/me/folder/lib:$LD_LIBRARY_PATH
export XDG_DATA_DIRS=$XDG_DATA_DIRS:/path/to/share

后者将搜索:/ path / to / share / kde4 / services / for * .desktop files。

确保在设置了环境变量的情况下运行kbuildsycoca4。然后从设置了环境变量的shell启动应用程序。

我没有对此进行测试,因此这些说明尤其是关于XDG_DATA_DIRS的说明可能无法开箱即用。但它应该让你更接近你的目标。

更新:如果您已在其中一个服务文件夹中拥有相应的.desktop文件,则不需要桌面文件和XDG_DATA_DIRS。因此,在这种情况下设置LD_LIBRARY_PATH应该可以解决问题。