Eclipse에서 "인식되지 않은 에뮬레이션 모드 : 32"오류를받는 이유는 무엇입니까?
-
21-08-2019 - |
문제
-M32 인수로 컴파일 할 때 어떻게이 오류가 발생합니까?
인식되지 않은 에뮬레이션 모드 : 32
x86_64 기계에서 g ++를 사용하여 컴파일하고 있습니다. 한 프로젝트에서 발생하지만 다른 프로젝트에서는 발생하지 않습니다 ... 힌트?
메모: Eclipse CDT를 사용하고 있습니다. 아마도 이것은 IDE 특정 Gocha일까요?
회상 된 질문
아마도 더 좋은 질문은 다음과 같습니다. x86_64 기계에서 실행할 때 Eclipse에서 x86 바이너리를 구축하는 가장 좋은 방법은 무엇입니까?
해결책
Eclipse에서는 컴파일러 옵션에 지정된 경우 Miscelanious 링커 옵션에 -m32를 지정해야합니다.
"인식되지 않은 에뮬레이션 모드 : 32"오류 메시지는 참조가 존재하지 않는 라이브러리 경로를 참조 할 때 나타납니다.
다른 팁
하나의 프로젝트에서 당신은 전달합니다 -m
우연히 링커에. GNU 링커 (LD)는 에뮬레이션 모드를 지정하기위한 -m 옵션을 지원합니다. 에뮬레이션은 링커 스크립트, 출력 객체 파일 형식 및 시작 주소와 같은 매개 변수로 구성됩니다. 하지 말아라 -m
ldflags이지만 cxxflags (c ++ 컴파일러 플래그) 또는 cflags (c 컴파일러 플래그)에.
예를 들어, 내 ld
ELF BINARIES 및 A.OUT BINARIES를 각각 생성하기위한 에뮬레이션 모드 ELF_I386 및 I386Linux를 지원합니다.
제휴하지 않습니다 StackOverflow