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

在Sconstruct中,如何为D编程语言指定包含路径,d,scons,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不起作用

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);
当我运行scons时,它会生成compile命令:

dmd -I. -c -ofapp.o app.d
includes
未添加到
-I
部分


那么我如何配置它呢?是否有INCLUDEPATH?

您可以尝试手动构建路径,而不是使用SCons在
-I
前面加上的
CPPPATH
构造变量,如下所示:

includePaths = ['-Ipath1', '-Ipath2']
....
env.Program(target = target,
            source = sources,
            LIBS = libs,
            CCFLAGS = includePaths);
但这可能会导致相同的问题,
CCFLAGS
不会用于
D
编译。除了
DSUFFIXES

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

我在我的机器上玩了一下,发现
CCFLAGS
D
不起作用,但是
DFLAGS
DPATH
都起作用,它们没有被记录:(
DPATH
在编译时会有
“I”
,所以它类似于
cppath


在SCons用户邮件列表中有关于增强SCons D支持的讨论。

您可以尝试手动构建路径,而不是使用
CPPPATH
构造变量,对于该变量,SCons会预先添加
-I

includePaths = ['-Ipath1', '-Ipath2']
....
env.Program(target = target,
            source = sources,
            LIBS = libs,
            CCFLAGS = includePaths);
但是这可能会导致同样的问题,
CCFLAGS
不会用于
D
编译。除了
DSUFFIXES

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

我在我的机器上玩了一下,发现
CCFLAGS
D
不起作用,但是
DFLAGS
DPATH
都起作用,它们没有被记录:(
DPATH
在编译时会有
“I”
,所以它类似于
cppath


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

谢谢。DPATH正是我要找的:)谢谢。DPATH正是我要找的:)