C++ “放在哪里?”;插件;在linux中
我目前正在开发/破解一个图像分析/转换工具。 其中的过滤器将在运行时使用dlopen&co加载 我的问题是*nix工具在安装时通常将插件(*.so文件)放在哪里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应该是一个好位置 在开发过程中,我
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,我一直在寻找这样的指南!