2012-01-13 2 views
1

Scons로 정적 라이브러리를 작성하려고합니다. "build-release"빌드 디렉토리에 오브젝트 파일과 라이브러리 파일을 빌드하기 만하면됩니다.빌드 대상에 빌드 대상을 쓰는 방법 scons를 만드시겠습니까?

VariantDir 사용 scons를 빌드 릴리스 디렉토리에서 빌드 할 수 있지만 libStringUtilities.a는 여전히 현재 디렉토리에 썼습니다. 이유가 무엇입니까?

제발, 어떤 도움도 wellcome됩니다.

내 폴더 레이아웃은 다음과 같습니다. 여기

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 파일을 다음과 같이 보이게 만드시겠습니까? (하위 폴더에서 최상위 폴더에 sconstruct 및 sconscripts) SCons는 사용시

import os 

env = Environment (ENV = os.environ) 

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

나는 일반적으로 의도 된 폴더 구조를 사용하지만, 그 문제는 원본 폴더에있는 라이브러리를 구축하고 있다고 생각합니다. 그것이 저기에서 끝나는 이유입니다.

시도해보십시오 :

env.StaticLibrary('../build-release/StringUtilities',object_files)