我正在寻求有关如何为跨平台库设计灵活的逻辑目录结构的建议。该库旨在可移植到几个类似UNIX的操作系统和几个处理器体系结构,具有以下标准:
我认为将这些问题推到有能力的建筑系统手中是明智之举,但我不想让目录结构在这个过程中变得复杂。值得注意的是,将会有相当多的文件,其中可能有三分之一是特定于操作系统或CPU,或两者兼而有之。
这是我到目前为止所提出的:
bin/
doc/
include/
ports/
{linux,freebsd,openbsd,...}/
{amd64,x86,arm,...}/
...
<shared code>
src/
ports/
{linux,freebsd,openbsd,...}/
{amd64,x86,arm,...}/
...
<shared code>
安装此库时,最好复制标题以允许更漂亮的代码,例如:#include <bits/abi.h>
,这可能是linux-amd64
的标题。
这种潜在混乱的优雅方法是什么?