似乎 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 吗?
您可以尝试手动构建路径,而不是使用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,但DFLAGS和DPATH做的,他们没有记录:(DPATH将已"I"在编译时预先考虑,所以它是类似于CPPPATH
SCons 用户邮件列表上有关于加强 SCons D 支持的讨论。