代码之家  ›  专栏  ›  技术社区  ›  porton

如何使用automake安装d库的.d文件?

  •  1
  • porton  · 技术社区  · 7 年前

    使用以下方法安装(系统范围)D库(至少在GNU系统上)的正确方法是什么 Makefile.am ?

    以下是我安装静态库和共享库的代码:

    install-data-local:
            install librdf_dlang.a librdf_dlang.so $(libdir)
    

    剩下的问题是如何安装 .d 供开发人员使用我的库的文件?

    D 文件夹?

    2 回复  |  直到 7 年前
        1
  •  1
  •   DejanLekic    7 年前

    如果您正在系统范围内安装D库和源代码(我想是接口文件),那么最常见的位置是 /usr/include/<project name> /usr/local/include/<project name> 只要它不与存储头文件的现有C/C++项目冲突。一些D程序员更喜欢 /usr/include/d/ /usr/local/include/d/

    我举一个例子 /usr/di (D)为此,我的库项目的所有接口文件都在那里。我将解释为什么我不喜欢在那里有单独的项目目录。

    无论选择哪个目录,都需要更新编译器搜索路径。

    [Environment64]
    DFLAGS=-I/usr/include/dmd/phobos -I/usr/include/dmd/druntime/import -I/usr/di -L-L/usr/lib64 -L--export-dynamic -fPIC
    

    ,并且ldc2.conf看起来像:

        // default switches appended after all explicit command-line switches
        post-switches = [
            "-I/usr/include/d/ldc",
            "-I/usr/include/d",
            "-I/usr/di",
            "-L-L/usr/lib64",
        ];
    

    如果您希望每个项目都有一个单独的目录,那么您最终会得到 -I<path> 为他们每个人我真的不喜欢这种方法。但是,它在开发人员中非常流行,因此如何组织D导入文件实际上取决于您。我知道开发人员非常不喜欢Java方法 domain.product.packages ,但这非常适合所有D接口文件所在的单一位置,而且最重要的是,由于 部分

        2
  •  1
  •   user272735    7 年前

    根据 Filesystem Hierarchy Standard SO question )

    /usr/local/include
    

    在“类似linux/unix的系统”上看起来很适合。特地看 note 9

    从历史上看,严格按照标准,/usr/local用于必须存储在本地主机上的数据(与/usr相反,后者可以跨网络装载)。大多数情况下,/usr/local用于安装不属于标准操作系统发行版的软件/数据(在这种情况下,/usr将只包含属于标准操作系统发行版的软件/数据)。FHS标准有可能在未来进行修改,以反映这一事实上的惯例。

    我对Windows一无所知。