2009-08-07 17 views
4

私は問題のないMakeベースのコードベースでsboxを使っています。今すぐ 私はsconsベースのコードベースを使用して、いくつかの奇妙な問題を抱えています。スクラッチボックスのscons:g ++を見つけることができません

スクラッチボックス内で、sconsはg ++を見つけることができないようです。それはやるべきとき

のhello.cハローO:例えば、 試みはのようなものを実行するために

グラム++ -oハローhello.cの

だから、おそらくそのG ++文字列を変数は空です。 g ++が存在し、 には "which g ++"が/ scratchbox/compilers/bin/g ++を生成するPATHがあります。

同じソースはscratchboxの外で細かく構築されるため、 sconsやコードベースに問題はありません。変数が動作するときに特別な環境がないので、スクラッチボックスの外に変数が設定されています。

私は象徴の/ usr/binに/グラム++へ/ scratchbox /コンパイラ/ binに/ gで++をリンクする場合は、 それは少しさらに取得します(コマンド++正しい-探しグラムを生成します)が、 は、それらを実行する際に生成します。

sb_gcc_wrapper(G ++): /scratchbox /コンパイラ/腕のLinux cs2007q3-51sb3 /ビン/ SBOX-アームなし-Linuxベースgnueabi-G ++: そのようなファイルまたはディレクトリ

ファイルが表示されないがありますプレゼント。

PATHは/ scratchbox /コンパイラ/ binが含まれ、SBOX_REDIRECT_FROM_DIRSは、/ usr/binに含まれているとSBOX_REDIRECT_TO_DIRSは/ scratchbox /コンパイラ/ binが含まれているので、私はそれを見つけることができるはずだと思います。

ご意見をお寄せください。 おかげで、 レイ

編集:おそらく関連 - 私はsconsの内のフルパスが

答えて

7

sconsのファイル先頭に追加しない限り、それはまたのpkg-config設定を見つけることができないので、例えば検査、PATH環境変数を伝播しません。 'g ++'はあまり役に立たない。

Either set the compilers directly, e.g. 
env['CXX'] = '/scratchbox/compilers/bin/g++' 

path = ['/scratchbox/compilers/bin/','/bin', '/usr/bin', '/sbin','/usr/sbin'] 
env = Environment(ENV = {'PATH' : path}) 

またはあなたのシェルから

import os 
env = Environment(ENV = {'PATH' : os.environ['PATH']}) 
+0

をPATH環境変数を使用し、独自の明示的なパスを構築おかげ - これは基本的に問題を解決しました。 PATHをインポートすると、pkg-configとg ++の場所の問題は修正されましたが、sbox-arm-none-linux-gnueabi-g ++のファイルが見つかりませんでした。私は悪いことをし、 "ENV = os.environ"で環境全体をインポートして、今g ++が正常に動作します... – Ray2k

関連する問題