2017-12-23 46 views
1

지금까지 오랫동안 직면 한 문제에 대한 설명과 해결책을 듣고 싶습니다. 내가 sudo는 명령이 허용되지 않는 원격 클러스터와 $ HOME 지점 위의 디렉토리에 어떤 작업을하고 있어요PATH 변수를 정의 할 때 --with-boost 옵션을 계속 사용해야하는 이유

은 내가 부스트

$HOME/external/trentacoollime 

를 구성 할 필요가

($HOME=/storage/5/trentalove)

을 허용되지 않습니다 내가

http://www.boost.org/users/history/version_1_65_1.html에서 boost_1_65_1.tar.bz2 소스를 사용하여 $HOME/boost_1_65_1에 설치 라이브러리 (sudo apt-get install libboost-all-dev가 아님을 유의하시기 바랍니다 허용)

그런 다음, 나는 `수출 PATH = $ 홈/boost_1_65_1로 .bash_profile을 수출 내 PATH 변수를 정의합니다. $의 PATH '그러나

을, 나는 $ HOME/외부/trentacoollime 디렉토리에 구성 할 때 ,

./configure 

와 나는

로 구성 오류 메시지

configure: error: cannot find Boost headers version>=1.41.0

가 표시되었다

./configure --with-boost=../../boost_1_65_1 

오류 메시지가 표시되지 않고 성공적으로 구성되었습니다.

내 생각에 부스트 디렉토리에 PATH 변수를 정의하고 내 보낸 이후에 ./configure 명령을 실행할 때 --with-boost=../../boost_1_65_1 옵션이 필요하지 않습니다. 그러나, 나는 그것을 필요로했다.

내가 누락 된 내용을 설명 할 수 있습니까?

p.s. 나는 sudo apt-get install libboost-all-dev으로 내 컴퓨터에서 똑같은 것을했는데, 이것은 /usr/include 디렉토리 아래 boost_1_65_1을 설치했다. 그럼에도 ./configure--with-boost= 옵션을 사용하여 $HOME/external/trentacoollime을 구성 할 수 있습니다 ($ PATH는 클러스터와 동일한 방식으로 정의 됨). 그러나 클러스터에 동일한 전략을 구현할 수는 없으므로 sudo 또는 mv, cp, ln 명령에 대한 허가가 /usr/include ($HOME 디렉토리보다 상위 지점에 있음)에 없으므로주의 할 수 있습니다.

+0

PATH에 뭔가를 추가하면 빌드 환경에 어떤 영향이 있다고 생각합니까? – sehe

답변

0

PATH를 사용하면 autotools에 영향을 미치지 않습니다 (configure 프로세스 중에 실행할 바이너리를 찾는 것 제외).

특정 프로젝트가 다른 조치를 취하지 않았다면 --with-boost을 제공해야합니다. 때로는 pkg-config을 사용하거나 전용 환경 변수 (예 : BOOST_DIR 또는 BOOST_ROOT)를 선택합니다.

나는 이것들 중 하나가 autotools 기반 프로젝트에서 인기가 없다고 생각합니다.