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

Mor*_*öfl 9 d static-linking

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

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

在链接到.lib文件并为它们创建标题的CI中,但在DI中找不到类似的东西(D中是否还有某种标题?)

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

小智 11

创建StaticLib.d:

module StaticLib;

int func(int x)
{
    return x+1;
}
Run Code Online (Sandbox Code Playgroud)

编译它:

dmd -lib StaticLib.d -ofStaticLib.lib
Run Code Online (Sandbox Code Playgroud)

创建App.d:

module App;
import std.stdio;
import StaticLib;

void main(string[] args)
{
    writeln("func(3) = ", StaticLib.func(3));
}
Run Code Online (Sandbox Code Playgroud)

创建StaticLib.di(d标题):

int func(int x);
Run Code Online (Sandbox Code Playgroud)

编译它:

dmd App.d StaticLib.di StaticLib.lib -ofApp.exe
Run Code Online (Sandbox Code Playgroud)


rat*_*eak 7

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

但是我见过的库只会导入源文件

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

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