0

我确实编写了我的 SConstruct 文件,所以我通过以下方式构建和运行程序scons run

program = env.Program('build/output', Glob('build/test/*.cpp'))
env.Default(program)
env.Alias('run', program, program[0].abspath)

我可以编译我的程序并毫无问题地运行它,但是当我尝试在我的程序中使用 glut 和 opengl 时,出现以下错误:

/home/tran/workspace/bobail/build/test/test
freeglut (/home/tran/workspace/bobail/build/test/test): 无法打开显示''

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

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

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

4

1 回答 1

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)
于 2012-12-15T07:33:10.690 回答