단 한 명의 사용자를 위한 맞춤형 GMP 라이브러리를 어떻게 설치합니까?

단 한 명의 사용자를 위한 맞춤형 GMP 라이브러리를 어떻게 설치합니까?

저는 시스템에서 엄청난 수치 처리 작업을 수행하고 있으며 수치 처리 계산을 시작하는 사용자를 위해 사용자 정의 GMP 6.1.0을 컴파일(및 미세 조정)하고 싶습니다. 이전에는 파일 시스템의 왼쪽과 오른쪽을 루트로 수정하면서 사용자 정의 GMP 저장소를 설치하는 Debian wheezy(7.6) 시스템을 사용했습니다(더 나은 것을 몰랐기 때문입니다). 마침내 작동했습니다. 내 사용자 정의 GMP 라이브러리는 기본 GMP보다 약 15% 더 빠르게 숫자를 처리했습니다.

이제 나는 "기본" GMP(Debian Jessie와 함께 제공되는 것)를 사용하여 해당 컴퓨터에 새 Debian(Jessie 8.3)을 설치했습니다.

# gcc --version
gcc (Debian 4.9.2-10) 4.9.2

# apt-get install libgmp10
# apt-get install libgmp-dev

이것은 분명히 GMP 6.0.0입니다.

내 번호 처리 프로그램을 컴파일 중입니다.

$ gcc crunch.c -o crunch.o -L/gmp_install/lib -lgmp

(GCC에 전달된 일부 매개 변수를 조작하면 약간의 이득을 얻을 수 있다는 것을 알고 있지만 여기서 가장 큰 문제는 맞춤 설정되지 않은 GMP의 "느림"입니다.)

그럼 내가 전화해./응축.o작동하지만 이전 시스템의 사용자 정의 빌드 GMP보다 15% 느립니다(동일한 시스템에서 위에 붙여넣은 것과 똑같은 gcc 컴파일 명령을 사용함).

이제 사용자 정의 GMP 6.1.0을 다시 컴파일하고 싶지만 과도한 계산을 실행하는 사용자에게만 액세스할 수 있습니다.

즉, 이제 전체 파일 시스템을 망가뜨리지 않고(루트인 동안) 사용자 정의 GMP를 깔끔하게 설치하고 싶습니다.

하지만 난 이해가 안 돼요-L/gmp_install/lib아무 의미도 없어-lgmp또한 있습니다.

제가 해야 할 첫 번째 단계는 다음과 같습니다.

그렇다면 (루트가 아닌) 사용자 계정에 대한 사용자 정의 GMP를 어떻게 컴파일하고 crunch.c 프로그램을 어떻게 컴파일합니까?

답변1

일반 사용자로서 다음 단계를 사용할 수 있습니다

tar xvjf gmp-6.1.0.tar.bz2
cd gmp-6.1.0
./configure --prefix=${HOME}/gmp/6.1.0
make 
make install

그러면 gmp가 설치됩니다 ~/gmp/6.1.0. 이제 이 버전을 사용하여 소프트웨어를 컴파일하거나 런타임에 사용하려면 몇 가지 환경 변수를 설정해야 합니다.

GMP_DIR="${HOME}/gmp/6.1.0"
export LD_LIBRARY_PATH=${GMP_DIR}/lib64:$LD_LIBRARY_PATH
export LIBRARY_PATH=${GMP_DIR}/lib64:$LIBRARY_PATH
export CPATH=${GMP_DIR}/include:$CPATH

사용하기 전에 파일이나 별도의 파일에 넣거나 ~/.bashrc바이너리 콘텐츠가 포함된 래퍼 스크립트를 작성할 수 있습니다. 다른 사람들은 그러한 작업 source에 그것을 선호합니다 .environment-modules

-lgmp매개변수는 링커에게 공유 라이브러리에 대해 링크하도록 지시하며 libgmp.so잘 알려진 경로 -L/gmp_install/lib( ./gmp_install/lib/lib, lib64, /usr/lib, /usr/lib64, ...)

환경 변수는 다음과 같이 사용됩니다.

  • LIBRARY_PATH-L스위치와 동일한 기능을 제공해야 함
  • CPATH헤더 파일에 대한 추가 검색 경로 제공
  • LD_LIBRARY_PATH런타임 시 필수

관련 정보