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 に答える