2

似乎 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 时,它会生成编译命令:

dmd -I. -c -ofapp.o app.d

includes未添加到-I部分

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

4

1 回答 1

5

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

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

但这可能会导致同样的问题,CCFLAGS不会用于D编译。除了DSUFFIXES

编辑:看起来DFLAGSDPATH没有记录

我在我的机器上玩这个,看到它CCFLAGS不会工作D,但是DFLAGSDPATH做,而且它们没有记录:(DPATH"I"在编译时预先设置,所以它类似于CPPPATH

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

于 2012-05-03T09:51:13.743 回答