제목에서 알 수 있듯이 C 프로그램을 컴파일하고 64 비트 컴퓨터에서 바이너리를 만들었습니다 .32 비트에서이 바이너리 작업을 할 수 있습니까?프로그램이 32 비트 컴퓨터에서 64 비트 작업을 준수합니까?
답변
64 비트 바이너리는 32 비트 OS에서 실행할 수 없습니다. file
이 ELF 64-bit
이라고보고하면 64 비트 바이너리를 사용하게됩니다.
64 비트 Linux에서 32 비트 바이너리를 빌드하려면 gcc에 -m32
을 전달해야합니다. 또한 32 비트 라이브러리 (sudo apt-get install libc6-dev-i386
)가 설치되어 있어야합니다.
컴파일러는 중요하지 않습니다. 중요한 것은 코드가 32 비트 (대답 : 예) 또는 64 비트 (대답 : 아니오)로 생성되었는지 여부입니다.
이해할 수 없습니다. 더 설명해 주시겠습니까? 파일 명령을 실행할 때 : GNU/Linux 2.6.18에 대해 giis-ext4 : ELF 64 비트 LSB 실행 파일, x86-64, 버전 1 (GNU/Linux), 동적 링크 (공유 라이브러리 사용) , 스트립되지 않음 64 비트에서만 실행할 수 있다는 의미입니까? 그렇다면 어떻게 64 비트 머신에서 32 비트 실행 파일을 만들 수 있습니까? [ –
@lakshmipathi : GCC에 의해 생성 된 코드는 -m32 스위치를 사용하는 x86-64 (기본값은 64 비트 OS) 또는 x86입니다. JesperE의 대답을보십시오. –
감사합니다 Ritsaert, 이제는 이해합니다. –
32 비트 컴퓨터에서 작동합니까? 하나의 CPU가 64 비트 모드를 지원하지 않습니까? No.
32 비트 네이티브 OS에서 64 비트 VM에서 작동합니까? 네, 제 경험으로 말입니다.
놀라운 결과는 CPU가 가능하고 게스트에 너무 많은 RAM (> 2G 또는 그 이상)을 할당하고 싶지 않다면 64 비트 VM을 32 비트 호스트 OS에서 실행할 수 있다는 것입니다.
명확히하기 위해 64 비트 게스트 OS는 32 비트 호스트 OS에서 실행할 수 있지만 CPU가 64 비트 인 경우에만 실행할 수 있습니다. –
64 비트 프로세스가 32 비트 OS에서 64 비트 CPU로 잘 실행됩니다 (Mac OS X는 항상이 작업을 수행합니다 ...). Windows는 64 비트 바이너리를로드하지 않는 "기본"방법이 없지만 일부 영리한 magick을 사용하거나 수동으로 CPU 모드를 전환하는 등의 작업을 쉽게 수행 할 수 있습니다. –
- 1. 64 비트 컴퓨터에서 32 비트 DLL 사용
- 2. 32 비트 64 비트 호환
- 3. 32 비트/64 비트 OS?
- 4. 32 비트 컴퓨터에서 64 비트 덤프로 WinDbg에서 손실되었습니다.
- 5. 64 비트 연산은 32 비트 컴퓨터에서 어떻게 수행됩니까?
- 6. 32 비트 XP 컴퓨터에서 64 비트 Qt 빌드
- 7. asp.net 32 비트 응용 프로그램이 64 비트 서버에서 32 비트 ODBC 드라이버를 찾을 수 없습니다.
- 8. 64 비트 컴퓨터에서 부호없는 128 비트 나누기
- 9. 32 비트 및 64 비트 CPU/OS
- 10. 32 비트 웹 응용 프로그램이 64 비트 서버에서 WOW64로 실행됩니까?
- 11. 64 비트 Windows 컴퓨터에서 32 비트 COM을 사용하여 32 비트 응용 프로그램 실행
- 12. 32 비트 Windows XP 64 비트 VM
- 13. 포트란 : 32 비트/64 비트 성능 이식성
- 14. 64 비트 Windows 2008의 32 비트 cluster.exe
- 15. 32 비트 64 비트 참조 라이브러리
- 16. 64 비트 컴퓨터에서 32 비트 응용 프로그램이 mshtml 어셈블리를 찾을 수 없습니다.
- 17. 32 비트 윈도우 아래의 64 비트 레지스터
- 18. 32 비트 및 64 비트 ASP.NET 배포
- 19. 64 비트 어셈블리의 32 비트 명령어들
- 20. 32 비트/64 비트 시스템에 관한 질문
- 21. Office의 32 비트 DLL 64 비트
- 22. 64 비트 Weblogic 서버의 32 비트 JDK
- 23. * .WAR (64 비트 x 32 비트) 생성
- 24. 64 비트 Solaris에서 32 비트 포인터로 컴파일
- 25. SharePoint 64 비트 또는 32 비트
- 26. 32 비트 dll에서 64 비트 dll로 변환
- 27. SHGetFolderPath() 32 비트 대 64 비트
- 28. 32 비트 라이브러리를 64 비트 프로그램에 연결
- 29. 64 비트 대 32 비트 Windows 결정
- 30. 64 비트 OS/32 비트 프로세스
guyz, 고맙습니다. –
64 비트 프로세스는 32 비트 OS에서 64 비트 CPU로 잘 실행됩니다 (Mac OS X는 항상이 작업을 수행합니다 ...). Windows 나 Linux는 64 비트 바이너리를로드하지 않는 "기본"방법이 없지만 일부 영리한 magick을 사용하거나 CPU 모드를 수동으로 전환하는 등의 작업을 쉽게 수행 할 수 있습니다. 질문에 대한 일반적인 대답은 다음과 같습니다. 아직도 아니야". –
Mac OS X은 Windows 및 Linux와 마찬가지로 "투명"32 비트 모드를 사용합니다. "수동 마법"이 필요하지 않습니다. Windows에는 자동으로 실행되는 32 비트 하위 시스템이 있으며 Linux에도 이와 유사한 메커니즘이 있습니다. 현대의 x86-64 프로세서는 이전의 32 비트 x86 아키텍처와 하위 호환이 가능하며 기본적으로 칩에 32 비트 x86을 포함하기 때문에 가능합니다. – JesperE