2011-08-23 4 views
5

私がビルダーを呼び出すとき CompileFlags文字列の値には-Wl,-rpath,lib:$ORIGIN/../libが含まれているため、$ ORIGINは空の文字列に展開されますが、そのままにしてください。

ドル記号をエスケープしようとしましたが、一重引用符を追加しても何も役に立ちません。また

env['RPATH'] = Literal('lib:$ORIGIN/../lib')

は動作しません:それはmanページが 「パスはどのような方法でsconsので形質転換されていないRPATHに追加」と言う場合でも、コマンドラインで

g++ -o main -Wl,-rpath=lib:/../lib

を生成しますだからLiteral()がなくても動作するはずです。

それで、$ TEXTを含むコンパイラフラグを、SConsを変数として展開しようとせずに追加できますか?

ありがとうございました。私はこれが拡張問題

Env['ORIGIN'] = Literal('$ORIGIN') 
    Env['RPATH'] = Literal('\'$ORIGIN/../lib:lib\'') 

してくださいを解決することができた

答えて

6

あなたはこのように、二重のドルを使用することができます。

env['RPATH'] = Literal('lib:$$ORIGIN/../lib') 
+0

ありがとう!できます。 – jackhab

3

、ない、より適切な/エレガントなソリューションのご承知のなら、私に知らせてください。

関連する問題