如何将boost链接到scons以编译NVDA

时间:2013-09-17 10:47:12

标签: boost scons nvda

我试图在Windows上从源代码编译和构建NVDA。源代码使用boost头并使用scon进行编译。我在C:\Program Files (x86)\boost\boost_1_47

下安装了升级版

scons出现以下错误:

buffer.cpp
include\minhook\src\buffer.cpp(32) : fatal error C1083: Cannot open include file: 'boost/foreach.hpp': No such file or directory
scons: *** [nvdaHelper\build\x86\minHook\_minHook_buffer.cpp.obj] Error 2
scons: building terminated because of errors.`

由于我的系统上的PATH变量包含boost的路径,而scons无法找到boost标头,因此我在sconstruct文件的ENV对象的构造中添加了env

env = Environment(variables=vars,tools=["textfile","gettext","t2t",keyCommandsDocTool,'doxygen'],ENV = {'PATH': os.environ['PATH']})

打印env['ENV']['PATH']确认已添加路径,但我仍然遇到相同的错误。我在这里缺少什么?

1 个答案:

答案 0 :(得分:1)

这是如何调用编译器的问题,并且与PATH环境变量没有任何关系。

您需要按如下方式设置所谓的Include Paths

env = Environment() # construct the env accordingly
env.Append(CPPPATH = 'C:\Program Files (x86)\boost\boost_1_47')

CPPPATH是SCons Construction Variable。您可能需要的其他人是:

  • LIBS - 需要链接到二进制文件的库
  • LIBPATH - 要在
  • 中链接的库的路径
  • CXXFLAGS - 编译标志