我正在开发/黑客的图像分析/转换工具。 其中的filter将在运行时使用dlopen&co加载。
我的问题是* nix工具在安装时通常在哪里放置插件(* .so文件)?
bin/program lib/program/plugins/thisandthat.so
也许?
其次,我如何使用它,并在开发过程中将其安装在何处? (这可能是棘手的部分)
我想尽可能避免使用shell脚本。
感谢Ronny
布局似乎是明智的。 例如,您可以查看当前目录,在开发期间查找环境变量或命令行切换。 这取决于你的开发环境和工作流程的细节。
通常/ usr / lib / programmname应该是个好地方
在开发过程中,我会创建一个命令行参数来指定插件搜索路径,并将插件保留在build-dir中。
考虑:
/usr/lib/program/*.so
一个很好的选择指南是Filesystem Hierarchy Standard 。 大多数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进行日志记录。
在回应咖啡的评论。 我发现在编译时选择目标目录非常有用。 使用$ PREFIX也可以很容易地将发展版本和发行版本分开。 大多数使用/ usr / progname,/ usr / lib / progname和/ etc / progname
不要忘记:
$HOME/.program/