Plugins 通过KDE插件库加载的插件路径

Plugins 通过KDE插件库加载的插件路径,plugins,kde,Plugins,Kde,我正在调试一个由(IIRC)KDEPluginLoader类加载的插件 问题是,每当我对插件进行修改时,它们都不会被看到 这是因为应用程序正在从“系统插件区域”加载插件。我不想把这个插件放在那个区域。(实际上我不应该这么做。)但lsof指向系统区域中的插件 如何让应用程序首先从编译目录加载插件?默认插件文件夹 在全局路径旁边,例如 /usr/share/kde4/services/*.desktop /usr/lib64/kde4/*.so 也会扫描本地路径,即 ~/.kde4/share/k

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

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

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


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

默认插件文件夹

在全局路径旁边,例如

/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\u 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/中搜索*.desktop文件

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

我还没有对此进行测试,因此这些指令,特别是关于XDG_DATA_DIRS的指令,可能无法开箱即用。但这会让你更接近你的目标


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

我也有同样的问题。你解决这个问题了吗?