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

时间:2012-04-28 17:45:49

标签: d static-linking

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

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

在C中我链接到.lib文件并为它们创建了标题,但在D中我找不到那样的东西(在D中是否还有某种标题?)

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

2 个答案:

答案 0 :(得分:11)

创建StaticLib.d:

module StaticLib;

int func(int x)
{
    return x+1;
}

编译:

dmd -lib StaticLib.d -ofStaticLib.lib

创建App.d:

module App;
import std.stdio;
import StaticLib;

void main(string[] args)
{
    writeln("func(3) = ", StaticLib.func(3));
}

创建StaticLib.di(d标题):

int func(int x);

编译:

dmd App.d StaticLib.di StaticLib.lib -ofApp.exe

答案 1 :(得分:7)

有.di(D接口)文件可以用作头文件,这些文件可以使用-H编译器开关从源生成

然而,我见过的库只会导入要导入的源文件

您可以使用-I开关指定编译器查找导入的位置

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