1

我正在尝试从 Windows 上的源代码编译和构建NVDA。源代码使用 boost headers 并使用 scon 进行编译。我在下面安装了boostC:\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']确认添加了路径,但我仍然得到同样的错误。我在这里想念什么?

4

1 回答 1

1

这是编译器如何调用的问题,与PATH环境变量无关。

您需要设置Include Paths如下所示的内容:

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

CPPPATH 是一个SCons 构造变量。您可能需要的其他内容是:

  • LIBS - 需要链接到二进制文件的库
  • LIBPATH - 要链接的库的路径
  • CXXFLAGS - 编译标志
于 2013-09-17T12:04:31.770 回答