로컬에 설치된 라이브러리 바인딩

로컬에 설치된 라이브러리 바인딩

내 컴퓨터에 루트 액세스 권한이 없어서 홈 폴더에 로컬로 GiNaC라는 라이브러리를 설치하려고 합니다.

나는 이 튜토리얼을 사용한다http://www.ginac.de/tutorial/Configuration.html#Configuration. 마지막에 예제가 있습니다(공유 라이브러리를 비활성화할 필요가 없으며 특정 컴파일러가 필요하지 않습니다).

불행하게도 만약 내가 그렇게 한다면

export CPPFLAGS="$(CPPFLAGS) -I$/home/xxx/include"
./configure

결과는 다음과 같습니다.

...
checking for g++... g++
checking whether the C++ compiler works... no
configure: error: in `/home/redies/ginac-1.6.2':
configure: error: C++ compiler cannot create executables
See `config.log' for more details

config.log에 줄이 있습니다

CPPFLAGS='CPPFLAGS: command not found -I$/home/xxx/include'

어떤 아이디어가 있나요?

답변1

튜토리얼에 버그가 있습니다. 쉘에서 변수 확장은 대괄호가 아닌 중괄호를 사용하므로 ${CPPFLAGS}대신 작성해야 합니다 $(CPPFLAGS).교정기 제거, 심지어. 또한 $HOME해당 값으로 바꾸는 경우 $이동해야 합니다( $변수 이름 뒤에는 "값 가져오기"를 의미함).

export CPPFLAGS="$CPPFLAGS -I/home/xxx/include"

CPPFLAGS아, 그리고 환경에 이전 값이 없으면 다음과 같이 작성할 수 있습니다 export CPPFLAGS="-I/home/xxx/include"(그러나 two 를 사용해도 문제가 없으며 $CPPFLAGS변수가 설정된 적이 없으면 값이 비어 있게 됩니다).

답변2

추가 CPPFLAGS 값이 없으면 이것이 작동할 것이라고 생각합니다.

CPPFLAGS="-I/home/xxx/include" ./configure

./configure --help또한 이 특정 구성 스크립트에 원하는 작업을 수행하는 명령줄 플래그가 있는지 확인하기 위해 실행해야 한다고 생각합니다 . 일반적인 구성 스크립트에는 J. Random Non-root-user가 $HOME 또는 다른 위치에 설치되도록 허용하는 다양한 옵션이 있습니다.

관련 정보