如何使用scons运行已编译的程序时定义环境变量

时间:2012-12-15 06:59:18

标签: environment-variables scons

我确实编写了我的SConstruct文件,因此我通过执行scons run

来构建和运行程序
program = env.Program('build/output', Glob('build/test/*.cpp'))
env.Default(program)
env.Alias('run', program, program[0].abspath)

我可以编译我的程序并运行它没有问题,但当我尝试在我的程序中使用过剩和opengl时,我有以下错误:

  

/家庭/ TRAN /工作区/ bobail /构建/测试/检验
  freeglut(/ home / tran / workspace / bobail / build / test / test):无法打开显示''

经过一番搜索,我发现我编译的程序需要将环境变量DISPLAY设置为DISPLAY=:0。我尝试使用Scons Export命令但到目前为止没有成功。

有人可以告诉我该怎么做。

编辑:如果我从命令行而不是Scons环境执行它,我的程序工作正常。

1 个答案:

答案 0 :(得分:3)

我发现了怎么做。您需要检索DISPLAY全局环境并在scons环境中导入它。您可以使用此环境来定义运行程序的别名。

test_env = Environment()
test_env.Append(ENV = {'DISPLAY' : os.environ['DISPLAY']})
test = test_env.Program(build_path + '/test/test', Glob(build_path + '/test/*.cpp'))
test_env.Alias('check', test, test[0].abspath)