고대 커널을 사용하여 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 버전을 업그레이드하지 마십시오. 설치하려는 도구는 시스템 수명으로 인해 오래된 도구 체인으로 인해 수명이 제한되어 있습니다.

패키지 관리자가 있는 모든 시스템에서 패키지 관리자는 다음을 수행해야 합니다.절대로 장애인이 되지 마세요. 운영 체제 업그레이드를 고려해야 합니다. 보다여기에 허용된 답변. 커널이 업그레이드되기 전에 헤더 파일을 업그레이드하면 안 되며 yum복원될 때까지 커널을 업그레이드할 수 없습니다.

인용하다

CentOS 5.2의 Boost(libboost) RPM의 RPM 사양

관련 정보