고대 커널을 사용하여 Linux에서 새로운 부스트 라이브러리 컴파일

고대 커널을 사용하여 Linux에서 새로운 부스트 라이브러리 컴파일

uname -r커널 버전 2.6.18-92.1.13.el5(from ) 및 gcc 6.1.0을 사용하는 2016 Intel C++ 컴파일러를 사용하는 Linux 시스템에서 최신 부스트 라이브러리(1.62.0)를 컴파일하려고 합니다 .

새로운 인텔 C++ 컴파일러와 gcc는 내 홈 디렉터리의 하위 디렉터리에 설치됩니다. 나는 아마도 ldd --version커널 만큼 오래된 오래된 glibc를 사용하고 있습니다 ldd (GNU libc) 2.5.

스레드 모듈에 대해 다음 오류가 발생합니다.

In file included from libs/log/src/event.cpp(31):
/usr/include/linux/futex.h(96): error: identifier "u32" is undefined
  long do_futex(u32 *uaddr, int op, u32 val, unsigned long timeout,
                ^

이것이 전체 편집에서 유일한 오류입니다.

루트 액세스 권한이 없기 때문에 컴퓨터에 새 커널을 설치할 수 없습니다.

최신 Linux 헤더를 설치하는 것이 좋은 생각입니까? 그러면 오류 없이 Boost 1.62.0을 설치할 수 있습니까?

답변1

첫 번째 참조에서 다음을 발견했습니다.

CentOS 5.2는 Boost 1.33.1과 함께 제공됩니다.

이러한 해킹적인 접근 방식을 고집한다면 다음을 방문해야 합니다.보관된 버전 부스트, 버전 1.33.1을 찾으세요. 하지만 출시일을 확인하세요.

버전 1.33.1
2006년 12월 5일 12:00 GMT

yum을 통해 설치해야 하는 버전을 다운로드한 후 홈 디렉터리에 빌드합니다. GCC 버전을 업그레이드하지 마십시오. 시스템의 노후화로 인해 설치하려는 도구는 구식 툴체인의 노후화로 인해 제한됩니다.

패키지 관리자가 있는 모든 시스템에서 패키지 관리자는 다음을 수행해야 합니다.절대로 비활성화되지 마십시오. OS 업그레이드를 고려해야 합니다. 참조여기에 답변이 허용되었습니다.. 커널을 업그레이드할 때까지 헤더 파일을 업그레이드해서는 안 되며, yum복원될 때까지 커널을 업그레이드할 수 없습니다 .

참고자료

CentOS 5.2의 Boost(libboost) RPM에 대한 RPM 사양

관련 정보