2011-12-14 2 views
0

/home/username/local/include에 설치된 부스트가 있습니다. CPPPATH에서이 집합으로 라이브러리를 컴파일하려고합니다.SCons : 라이브러리에서 CPPPATH 옵션을 선택하는 방법

SConstruct :

env = Environment(CPPPATH = '/home/username/local/include') 
env.Library('MyLib', 'library.cpp') 

library.cpp : 나는 scons을 실행할 때, 그것은 오류 error: boost/shared_ptr.hpp: No such file or directory을 제공

#include <boost/shared_ptr.hpp> // library.cpp:1:32: error: boost/shared_ptr.hpp: No such file or directory 

void foo() { } 

.

프로그램에서 똑같은 작업을하는 것이 좋습니다.

SConstruct :

env = Environment(CPPPATH = '/home/username/local/include') 
env.Program('program.cpp') 

program.cpp : 내가 여기서 뭘

#include <boost/shared_ptr.hpp> // works 

int main() { return 0; } 

를 놓친 거지?

scons: Reading SConscript files ... 
scons: done reading SConscript files. 
scons: Building targets ... 
g++ -o library.o -c -I/home/m/local/include library.cpp 
library.cpp:1:32: error: boost/shared_ptr.hpp: No such file or directory 
scons: *** [library.o] Error 1 
scons: building terminated because of errors. 
+0

음 ... '-k'로 빌드를 시도해도됩니다. 지금은 라이브러리에서 작동하고 있지만 프로그램에서 다르게 작동한다는 증거는 없습니다. '-k'를 사용하면 실패를 무시하고 모든 타겟을 빌드하려고 시도합니다. 업데이트 된 출력을 게시하십시오. – acm

+0

그리고 'ls/home/m/local/include'의 내용도 게시해야합니다. – acm

답변

1

내 시스템에 오류를 재현 할 수 없습니다

편집 여기

이 출력됩니다. 네가 거기있는 모든 것을 나에게 맞게 보인다.

나는 부풀어 오른 부스트 인스톨 설정을 만들었고, 실수로 내 부스트에 도달하지 않도록 다른 파일 이름을 사용했다./usr에 포함시켰다. SCons 2.0.1을 사용하고 있습니다.

$ find /home/acm/local/include -type f 
/home/acm/local/include/boost/not_a_boost_header.hpp 

library.cpp :

#include <boost/not_a_boost_header.hpp> 

void foo() { } 

program.cpp :

#include <boost/not_a_boost_header.hpp> 

int main() { return 0; } 

SConstruct :

env1 = Environment(CPPPATH = '/home/acm/local/include') 
env1.Library('MyLib', 'library.cpp') 

env2 = Environment(CPPPATH = '/home/acm/local/include') 
env2.Program('program.cpp') 

빌드 결과 :

$ scons 
scons: Reading SConscript files ... 
scons: done reading SConscript files. 
scons: Building targets ... 
g++ -o library.o -c -I/home/acm/local/include library.cpp 
ar rc libMyLib.a library.o 
ranlib libMyLib.a 
g++ -o program.o -c -I/home/acm/local/include program.cpp 
g++ -o program program.o 
scons: done building targets. 

전체 SCons 출력을 게시 할 수 있습니까?

+0

나는 그것을 게시했다. 나는 우분투 10.04에서 scons v2.1.0.r5357을 가지고있다. – syvex

+0

이 파일을 include 폴더의 잘못된 링크로 추적했습니다. scons 좋은 모양입니다. – syvex

관련 문제