2017-02-13 1 views
0

나는이 질문에 대한 해결책을 전혀 찾지 않아서 여기를 버렸다고 생각했다.우분투에서 Centos 로의 크로스 컴파일 오류 GLIBCXX

나는 우분투에서 아주 잘 컴파일 된 소스를 가지고 있으며, 내 CentOS 7 컴퓨터에서 사용하고 싶습니다. 이 질문을 위해 Centos에서 코드를 컴파일하는 것이 완전히 문제가되지 않는다고 가정 해 봅시다.

내 응용 프로그램을 실행할 때마다 " 'GLIBCXX_3.4.21'을 (.... 필요하지 않음) 찾을 수 없다는 오류가 발생합니다. 내 Centos 'libstdC++. so.6을 통해 검색 할 때 GLIBCXX_3.4.19로만 이동한다는 것을 알 수 있습니다.

어떻게하면 CentOS 7에서 쉽게 실행할 수 있도록 3.4.19에서 멈춘 libstdC++. so 버전을 사용하여 우분투에서 코드를 컴파일 할 수 있습니까?

답변

1

CentOS와 함께 제공되는 GCC 버전보다 오래된 컴파일러와 함께 libstdC++를 빌드해야합니다.

대안으로 libgcc와 libstdC++를 정적으로 링크하는 것이지만, glibc에서 같은 문제가 발생할 가능성은 있지만 정적으로 연결할 수는 없습니다. 즉 glibc는 이러한 대안을 망칠 수도 있습니다.

CentOS 호스트에서 컴파일하거나 sysroot가 기본 시스템 레이아웃을 복제하도록하는 것이 100 % 확실한 유일한 방법입니다.

또 다른 공식적인 대안은 [Linux LSB 컴파일러] [1]를 사용하는 것인데, 이것은 자기 존중 리눅스 배포판이 호환 할 수있는 기준선을 제공합니다. 나는이 호환성의 정도를 알지 못하기 때문에 LSB에 대한 경험을 공유 할 수는 없으며 그 존재와 목적에 대해서만 알고 있습니다.

[1] https://wiki.linuxfoundation.org/en/Developers/LSB_Tutorial

관련 문제