C++ “放在哪里?”;插件;在linux中

C++ “放在哪里?”;插件;在linux中,c++,c,linux,directory,plugins,C++,C,Linux,Directory,Plugins,我目前正在开发/破解一个图像分析/转换工具。 其中的过滤器将在运行时使用dlopen&co加载 我的问题是*nix工具在安装时通常将插件(*.so文件)放在哪里 bin/program lib/program/plugins/thisandthat.so 也许吧 第二,我如何使用它,以及在开发过程中,在没有安装它的情况下,我将它放在哪里。(这可能是棘手的部分) 我希望尽可能避免使用shell脚本 谢谢你 Ronny通常/usr/lib/programmname应该是一个好位置 在开发过程中,我

我目前正在开发/破解一个图像分析/转换工具。 其中的过滤器将在运行时使用dlopen&co加载

我的问题是*nix工具在安装时通常将插件(*.so文件)放在哪里

bin/program
lib/program/plugins/thisandthat.so
也许吧

第二,我如何使用它,以及在开发过程中,在没有安装它的情况下,我将它放在哪里。(这可能是棘手的部分)

我希望尽可能避免使用shell脚本

谢谢你
Ronny

通常/usr/lib/programmname应该是一个好位置


在开发过程中,我会创建一个命令行参数来指定插件搜索路径,例如,只需将插件保留在build dir中。

布局似乎合理。例如,您可以在开发过程中查找当前目录、环境变量或命令行开关。这取决于您的开发环境和工作流程的详细信息。

请考虑:

/usr/lib/program/*.so
不要忘记:

$HOME/.program/

一个很好的选择指南是。 大多数Linux发行版都使用此标准

这里是一个非常简短的总结

将应用程序二进制文件放入: /usr/bin/progname、/usr/local/bin/progname或/opt/progname

将插件或库文件放入: /usr/lib/progname、/usr/local/lib/progname或/opt/progname/lib

将应用程序的主机配置置于: /etc/progname或/etc/opt/progname

将用户配置放置在: $HOME/.progname

将应用手册页面放入: /usr/shar/man/man1/

/var有单独的层次结构。例如,使用/var/log/progname进行日志记录

作为对caf评论的回应。我发现在编译时选择目标目录非常有用。使用$PREFIX还可以很容易地将development构建与shipppment分开。
大多数使用/usr/progname、/usr/lib/progname和/etc/progname

,实际上
$PREFIX/lib/program/
,其中
前缀可能是
/usr
/usr/local
/opt
,甚至
/home/foo
。如果整个应用程序安装在/opt中,我只会使用/opt库文件。我使用$HOME/.program/进行特定于用户的配置。类似于ssh如何使用$HOME/.sshs对不起,我不是很清楚-通常
前缀
将在构建时设置,因此是的,整个应用程序将安装在它下面的不同位置,如
$PREFIX/bin/
$PREFIX/share/doc/
+1,我一直在寻找这样的指南!