내 배포판 (Arch Linux)은 최근 툴 체인 용으로 지원되는 최소 Linux 커널 버전을 증가 시켰습니다. 정적으로 링크 한 다음 웹 서버에 업로드하는 웹 응용 프로그램을 컴파일하고 있으며 웹 서버의 커널 버전이 새 도구 체인으로 컴파일 된 정적 라이브러리에 너무 오래되었습니다. (서버에서 정적 바이너리를 실행하려고 할 때 세그먼테이션 오류가 발생합니다.) 최신 커널 버전을 필요로하는 기능이 생략되도록 GNU 툴체인 (GCC, binutils, glibc)을 사용하여 응용 프로그램을 컴파일하는 방법이 있습니까?정적 라이브러리를 컴파일 할 때 이전 최소 커널 버전 설정
2
A
답변
1
Glibc 호환성은 실제로 한 방향에서만 보장됩니다. (이전 바이너리는 새로운 시스템에서 작동하며 그 반대의 경우도 마찬가지입니다.)
바이너리가 이전 시스템에서 작동하도록하려면 이전 glibc와의 링크를 컴파일하십시오. 가장 쉬운 방법은 오래된 배포판을 찾는 것입니다. 그러나 빌드 시스템에서 사용하는 것과 다른 libc를 목표로하는 "crosstool"또는 이와 유사한 크로스 컴파일 툴체인을 설정하는 것이 좋습니다. (이 방법은 다음과 상관없이 반복적으로 빌드 할 수 있습니다. 시스템이 무엇인지).
0
감사합니다. 또한 glibc에 --enable-kernel 옵션이있어서 이전 커널에서 작업 할 수 있음을 발견했습니다.
관련 문제
- 1. ios 개발에서 컴파일 된 정적 라이브러리를 디버그 할 수 있습니까
- 2. 최소 안정 리눅스 커널
- 3. VS2010에서 .net의 이전 버전 용으로 컴파일
- 4. Ninject - 정적 클래스의 커널?
- 5. 커널 컴파일 오류
- 6. idt_table undefined! 커널 모듈을 컴파일 할 때 경고
- 7. 안드로이드 커널 컴파일
- 8. 정적 라이브러리를 배포하는 방법은 무엇입니까?
- 9. 공유 라이브러리를 정적 라이브러리에 링크 : 응용 프로그램을 링크하는 경우와 다른 방식으로 정적 라이브러리를 컴파일해야합니까?
- 10. rvct로 컴파일 할 때 전역 정적 멤버의 생성자가 호출되지 않는다
- 11. g ++ 정적 라이브러리를 컴파일 할 때 최적화 플래그를 추가하는 것이 맞습니까
- 12. 이전 버전 용으로 컴파일 할 때 App Store에서 최신 OS X SDK 사용
- 13. libboost 라이브러리를 링크하여 RHEL에서 sslsniff를 컴파일 할 때 문제가 발생했습니다.
- 14. .NET에서 라이브러리를 게시 할 때 버전 및 호환성을 관리하는 방법
- 15. Maven을 사용하여 라이브러리를 참조 할 때 컴파일 오류가 발생합니다.
- 16. 프로젝트에 정적 라이브러리를 추가 할 때 xcode에서 코드 서명이 실패합니다.
- 17. gcc는 링크 할 때 공유 객체에 정적 라이브러리를 선호합니까?
- 18. 프로젝트에 정적 라이브러리를 추가 할 때 오류가 발생했습니다.
- 19. 코코아 응용 프로그램에서 정적 라이브러리를 추가 할 때 문제가 발생했습니다.
- 20. 서비스 주요 업그레이드가 실패 할 때 이전 버전 설치
- 21. 타사 정적 라이브러리를 다른 정적 라이브러리에 연결
- 22. 정적 라이브러리를 추가 할 수 없습니다.
- 23. 자바 - 파일을 컴파일 할 때 버전 번호를 선택할 수 있습니까?
- 24. 리눅스 컴파일 설정
- 25. Windows에서 정적 Qt 빌드를 컴파일 할 때 정의되지 않은 참조
- 26. 아이폰 앱이 배포판에 정적 라이브러리로 컴파일 할 때 오류가 발생했습니다.
- 27. 리눅스에서 외부 라이브러리를 컴파일 할 때의 문제
- 28. 캘린더의 최소 연도 설정
- 29. Groovy 그루비 이전 버전
- 30. Qt OpenGL 컴파일 정적