不完全是您的要求,但看起来足够相似以提供帮助。在下面的示例中,我使用 gdc 编译 D 语言源文件并最终将它们与 C 库链接(编写我自己的 C 函数需要定义接口 d 模块,因为 d 名称修改与 C 不同,并且会引发链接问题)。我按照工具和生成器部分中描述的内容(参见@GrafikRobot 的回答)来实现这一点,这很容易。
这是示例 jam 文件和代码。
gdc.jam
import type ;
type.register D : d ;
import generators ;
generators.register-standard gdc.compile : D : OBJ ;
actions compile
{
# "echo" $(>) $(<)
"gdc" -c -o $(<) $(>)
}
果酱
import gdc ;
project hello
: requirements
<cflags>-O3
: default-build release
;
lib gphobos2 : : <file>/usr/lib/gcc/x86_64-linux-gnu/4.6/libgphobos2.a <name>gphobos2 ;
lib m : : <name>m ;
lib z : : <name>z ;
lib rt : : <name>rt ;
lib pthread : : <name>pthread <link>shared ;
exe hello
:
hello.d
bye.d
gphobos2 m z rt pthread
:
<link>static
;
你好ð
import std.stdio;
void main()
{
writeln("Hello World!");
static import bye ;
bye.bye();
}
Bye.d
模块再见;
import std.stdio;
void bye()
{
writeln("Good bye");
}