2012-01-13 8 views
1

私はSconsで静的ライブラリを構築しようとしています。 私がしたいのは、オブジェクトファイルとライブラリファイルを "build-release"というビルドディレクトリにビルドすることです。ビルドのターゲットをビルドディレクトリに書き込むにはどうすればいいですか?

VariantDirを使用すると、build-releaseディレクトリでオブジェクトファイルを作成できますが、libStringUtilities.aは現在のディレクトリに書き込まれています。なぜですか?

お願いします。よろしくお願いいたします。

私のフォルダのレイアウトは次のとおりです。ここで

MyLib/ 
    \--- project/ 
      \---- SConstruct 
      \---- SConscript 
    \--- src (source files) 
    \--- build-release (build directory) 

は私のSconscript ...

Import('env') 

    source_files = Glob('../build-release/*.cc') 
    object_files = env.Object(source_files) 
    env.StaticLibrary('StringUtilities',object_files) 

...とSconstructファイルです。

import os 

    env = Environment (ENV = os.environ) 

    Export('env') 

    VariantDir('../build-release','../src',duplicate= False) 
    SConscript('SConscript') 

答えて

0

これを試さずに、あなたのSConstructファイルをこのように見せてください。

import os 

env = Environment (ENV = os.environ) 

env.VariantDir('../build-release', '../src',duplicate= False) 
env.SConscript('SConscript', 'env') 
0

sconsの(最上位フォルダ内sconstruct、およびサブフォルダ内sconscripts)を使用したとき、私は通常、意図したフォルダ構造を使用しますが、私はこの問題は、あなたがソースフォルダ内のライブラリを構築することだと思います。それがそこで終わるのはそのためです。

で試してみてください:

env.StaticLibrary('../build-release/StringUtilities',object_files) 
関連する問題