在 Sconstruct 中,如何指定 D 编程语言的包含路径

Vis*_*hao 2 d scons

似乎 CPPPATH 不起作用

env = Environment()
target = 'app'
sources = ['app.d']
libs = ['phobos2', 'pthread', 'm', 'rt']
includes = ['/home/supertool/devel/d/vibe.d/source/vibe']

env.Program(target = target,
        source = sources,
        LIBS = libs,
        CPPPATH = includes);
Run Code Online (Sandbox Code Playgroud)

当我运行 scons 时,它会生成编译命令:

dmd -I. -c -ofapp.o app.d
Run Code Online (Sandbox Code Playgroud)

includes未添加到-I部分

那么我该如何配置呢?有 INCLUDEPATH 吗?

Bra*_*ady 5

您可以尝试手动构建路径,而不是使用CPPPATHSCons 前置的构造变量,如下所示:-I

includePaths = ['-Ipath1', '-Ipath2']
....
env.Program(target = target,
            source = sources,
            LIBS = libs,
            CCFLAGS = includePaths);
Run Code Online (Sandbox Code Playgroud)

但这可能会导致同样的问题,即CCFLAGS不会用于D编译。我还没有看到任何特定于 D 的构造变量DSUFFIXES

编辑:看起来像DFLAGS并且DPATH没有记录

我在玩弄我这台机器上,看到CCFLAGS的不会工作D,但DFLAGSDPATH做的,他们没有记录:(DPATH将已"I"在编译时预先考虑,所以它是类似于CPPPATH

SCons 用户邮件列表上有关于加强 SCons D 支持的讨论。