如何在D程序中链接到D库

如何在D程序中链接到D库,d,static-linking,D,Static Linking,我是D编程语言的新手,有一个非常简单的问题 我想编译一次D脚本库,然后在我的其他D项目中使用它 在C语言中,我链接到.lib文件并为它们创建了头文件,但在D语言中,我找不到类似的东西(在D语言中是否有某种头文件?) 我使用D-IDE作为IDE,使用DMD2作为编译器。创建StaticLib.D: 模块静态库; int func(int x) { 返回x+1; } 编译它: dmd -lib StaticLib.d -ofStaticLib.lib dmd App.d StaticLib.di

我是D编程语言的新手,有一个非常简单的问题

我想编译一次D脚本库,然后在我的其他D项目中使用它

在C语言中,我链接到.lib文件并为它们创建了头文件,但在D语言中,我找不到类似的东西(在D语言中是否有某种头文件?)

我使用D-IDE作为IDE,使用DMD2作为编译器。

创建StaticLib.D:

模块静态库;
int func(int x)
{
返回x+1;
}
编译它:

dmd -lib StaticLib.d -ofStaticLib.lib
dmd App.d StaticLib.di StaticLib.lib -ofApp.exe
创建应用程序d:

模块应用;
进口std.stdio;
导入StaticLib;
void main(字符串[]args)
{
writeln(“func(3)=”,StaticLib.func(3));
}
创建StaticLib.di(d头):

intfunc(intx);
编译它:

dmd -lib StaticLib.d -ofStaticLib.lib
dmd App.d StaticLib.di StaticLib.lib -ofApp.exe
有一些.di(D接口)文件可以用作头文件,这些文件可以通过-H编译器开关从源代码生成

但是,我看到的库只有要导入的源文件

可以使用-I开关指定编译器将在何处查找导入

并且-L开关将被传递到链接器

:>按照惯例,包和模块名称都是小写的。这是因为这些名称可以与操作系统的目录和文件名一一对应,而且许多文件系统不区分大小写。所有小写的包名和模块名都将最大限度地减少在不同文件系统之间移动项目的问题。