Debian에서 Ubuntu로 바이너리 실행 파일?

주다

데비안에서 gcc 4.9를 사용하여 큰 C ++ 프로그램을 컴파일했습니다. 실행 가능한 바이너리 코드가 우분투에서도 호환되고 안전한지 알고 싶습니다. 아니면 우분투에서 프로그램을 다시 컴파일해야합니까?

사용자 140866

문제는 현재의 모든 Linux (glibc)에 널리 퍼져있는 핵심 라이브러리에 있습니다. libc 공유 라이브러리 내에 각 표준 함수의 버전을 두 개 이상 포함하고 glibc와 함께 제공되는 lib를 지원하는 기능을 추가하는 "기호 버전 관리"라는 "기능"을 통합합니다.

예를 들어, 결과 바이너리는 "GLIBC_2.15"기호 버전에 종속 될 수 있으며 대상 시스템은 최대 "GLIBC_2.14"를 제공합니다. 그러면 치명적인 오류 메시지가 표시되고 그 이상은 표시되지 않습니다.

일부 glibc 버전은 이전 커널이나 하드웨어에서도 실행을 거부하지만 드문 경우입니다.

특정 glibc 부분은 정적 프로그램에서도 동적 라이브러리를 요구할 수 있기 때문에 glibc를 사용하면 정적으로 컴파일하는 것도 옵션이 아닙니다 (컴파일 및 링크하는 동안 발생하면 경고가 표시됩니다).

여러 시스템에서 실행하기 위해 하나의 바이너리를 만들어야하는 경우 다른 libc를 사용하려고합니다. 하나의 바이너리 만 다른 시스템에서 실행하려면 해당 시스템에서 다시 빌드하는 것이 좋습니다.

특정 경우 (glibc에는 적용되지 않음), 대상이 매우 느린 경우 컴파일 된 소스 트리를 복사하고 모든 객체 (* .o) 파일을 터치하고 바이너리를 제거 할 수 있습니다. 그런 다음 실행 make하면 다시 연결됩니다.

또한 많은 (전부는 아님!) 타사 라이브러리도 기호 버전 관리 요구 사항을 적용 할 수 있으며 이는 이들에도 적용됩니다.

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

Ubuntu 17.10에서 바이너리 파일을 실행할 수 없습니다.

분류에서Dev

Mac에서 실행 가능한 바이너리로 Python3 컴파일

분류에서Dev

AWS Lambda 용 JAR에서 바이너리 실행 파일 실행

분류에서Dev

Ubuntu 12.04에서 바이너리 실행 파일을 실행할 수 없습니다.

분류에서Dev

C / C ++ 바이너리 실행 파일을 Docker 컨테이너로 실행

분류에서Dev

NTFS 파티션에서 nodejs 바이너리 실행이 권한 실패로 끝남

분류에서Dev

ldd : FATAL : 실행 파일에서 호출 된 해결되지 않은 기호 "getopt_long"-arm에서 QNX 용으로 컴파일 된 바이너리 사용. 왜?

분류에서Dev

웹 UI에서 C ++ 컴파일 된 실행 바이너리에 액세스

분류에서Dev

iex : iex 콘솔에서 컴파일 된 elixir 바이너리 실행

분류에서Dev

Mac OS에서 바이너리 파일을 실행할 수 없습니다.

분류에서Dev

바이너리 파일 실행

분류에서Dev

fork ()는 호출 프로세스가 현재 실행중인 실행 가능한 바이너리에 대한 파일 설명자를 복사합니까?

분류에서Dev

디렉토리 내에서 모든 바이너리 실행 파일을 재귀 적으로 찾는 방법은 무엇입니까?

분류에서Dev

메이븐 - 자바 프로젝트에서 실행 파일

분류에서Dev

실행 파일 / 바이너리 (이미 빌드 됨)를 유니 커널로 실행할 수 있습니까?

분류에서Dev

실행중인 프로세스의 삭제 된 바이너리 실행 파일을 복구하는 방법

분류에서Dev

./없이 Ubuntu 실행 파일

분류에서Dev

키보드 입력으로 파이썬에서 실행 파일 실행

분류에서Dev

공유 라이브러리 파일로 레이블이 지정된 실행 가능한 바이너리

분류에서Dev

파이썬에서 단일 배치 파일로 두 개의 exe 파일 실행

분류에서Dev

실행 가능한 바이너리로 gem을 개발할 때 lib dir에있는 파일이 필요하지 않을 때

분류에서Dev

Linux에서 실행 파일에서 기계 코드로 이진 실행 단계

분류에서Dev

.txt 파일의 바이너리 FTP 전송-Unix에서 Windows로

분류에서Dev

Clisp에서 바이너리 모드로 파일 쓰기 / 읽기

분류에서Dev

ASCII에서 바이너리로 파일 변환

분류에서Dev

바이너리 파일을 C에서 bool 배열로 읽기

분류에서Dev

C #에서 파일을 바이너리로 변환

분류에서Dev

mongodb에서 바이너리 로그 파일 읽기

분류에서Dev

문자열에서 파일로 바이너리 쓰기

Related 관련 기사

  1. 1

    Ubuntu 17.10에서 바이너리 파일을 실행할 수 없습니다.

  2. 2

    Mac에서 실행 가능한 바이너리로 Python3 컴파일

  3. 3

    AWS Lambda 용 JAR에서 바이너리 실행 파일 실행

  4. 4

    Ubuntu 12.04에서 바이너리 실행 파일을 실행할 수 없습니다.

  5. 5

    C / C ++ 바이너리 실행 파일을 Docker 컨테이너로 실행

  6. 6

    NTFS 파티션에서 nodejs 바이너리 실행이 권한 실패로 끝남

  7. 7

    ldd : FATAL : 실행 파일에서 호출 된 해결되지 않은 기호 "getopt_long"-arm에서 QNX 용으로 컴파일 된 바이너리 사용. 왜?

  8. 8

    웹 UI에서 C ++ 컴파일 된 실행 바이너리에 액세스

  9. 9

    iex : iex 콘솔에서 컴파일 된 elixir 바이너리 실행

  10. 10

    Mac OS에서 바이너리 파일을 실행할 수 없습니다.

  11. 11

    바이너리 파일 실행

  12. 12

    fork ()는 호출 프로세스가 현재 실행중인 실행 가능한 바이너리에 대한 파일 설명자를 복사합니까?

  13. 13

    디렉토리 내에서 모든 바이너리 실행 파일을 재귀 적으로 찾는 방법은 무엇입니까?

  14. 14

    메이븐 - 자바 프로젝트에서 실행 파일

  15. 15

    실행 파일 / 바이너리 (이미 빌드 됨)를 유니 커널로 실행할 수 있습니까?

  16. 16

    실행중인 프로세스의 삭제 된 바이너리 실행 파일을 복구하는 방법

  17. 17

    ./없이 Ubuntu 실행 파일

  18. 18

    키보드 입력으로 파이썬에서 실행 파일 실행

  19. 19

    공유 라이브러리 파일로 레이블이 지정된 실행 가능한 바이너리

  20. 20

    파이썬에서 단일 배치 파일로 두 개의 exe 파일 실행

  21. 21

    실행 가능한 바이너리로 gem을 개발할 때 lib dir에있는 파일이 필요하지 않을 때

  22. 22

    Linux에서 실행 파일에서 기계 코드로 이진 실행 단계

  23. 23

    .txt 파일의 바이너리 FTP 전송-Unix에서 Windows로

  24. 24

    Clisp에서 바이너리 모드로 파일 쓰기 / 읽기

  25. 25

    ASCII에서 바이너리로 파일 변환

  26. 26

    바이너리 파일을 C에서 bool 배열로 읽기

  27. 27

    C #에서 파일을 바이너리로 변환

  28. 28

    mongodb에서 바이너리 로그 파일 읽기

  29. 29

    문자열에서 파일로 바이너리 쓰기

뜨겁다태그

보관