2014-11-24 1 views
1

나는 Scons on OSX를 사용하고 있으며 공유 라이브러리 (.dll, .so, .dylib)를 만들려고합니다.Scons가 공유 라이브러리의 infront를 추가하는 것을 중단하는 방법

나를 괴롭히는 한 가지를 제외하고는 모두 완벽하게 작동합니다. 라이브러리 이름 앞에 'lib'가 추가되었습니다. 예를 들어, WL을 선택하면 libWL.dylib이됩니다. 나는 Scons가 이것을하는 이유를 해결할 수 없다. 그리고 그것은 나를 미치게하고있다.

enter image description here

내가 사용하고있는 코드는 다음과 같습니다

# -*- coding: utf-8 -*- 
import os 
SourceList = ['Window.cpp'] 
env = Environment(ENV = os.environ) 

#Libraries we are using 
Targets = 'WL' 
libraries = ['SDL2'] 

#Paths to the libraries and include paths 
Paths = ['/usr/local/lib', '/usr/local/include'] 

Export('SourceList env libraries Paths Targets') 
SConscript('src/SConscript', variant_dir='bin', duplicate=0) 

Import('SourceList env libraries Paths Targets') 
SharedLibrary(target = Targets,source = SourceList,LIBS = libraries, LIBPATH=Paths) 

나는 경우 그래서 나도 몰라 공유 라이브러리 작동 방법에 대한 슈퍼 지식이 아니에요 컴파일 된 후에 이름을 바꿀 수 있습니다. 그러나 글자를 추가하지 않기를 바란다.

답변

6

각 환경에서 SCons는 변수를 사용하여 라이브러리와 프로그램과 같은 항목의 접두어와 접미사를 지정한다.) (이 변수는 현재에 ... 실행중인 감지 된 플랫폼을 기반으로, 초기화 얻을하지만 당신은 단순히 환경의 호출 후에이 설정을 덮어 쓸 수 있습니다 생성자 :

"다윈"-like 시스템의
env = Environment() 
env['SHLIBPREFIX'] = '' 

, SCons는 표준 "posix"초기화를 먼저 호출합니다. 이것이 기본 "lib"접두어의 출처입니다.

팁 : 환경을 사전 (해시 맵)과 매우 흡사하게 처리하고 필요에 따라 값을 설정할 수 있습니다.

print env.Dump() 

SConstruct/SConscript에서 당신에게 정의 된 변수의 전체 목록을 제공 : 현재의 내용을 표시 위해 당신은 덤프() 메소드를 사용할 수 있습니다. MAN 페이지 (http://scons.org/doc/production/HTML/scons-man.html) 및 UserGuide (http://scons.org/doc/production/HTML/scons-user.html)에서 표준 변수 목록을 찾을 수 있습니다.

+0

고맙습니다. 신사와 학자입니다. –

관련 문제