크로스 컴파일러가 작동하는지 테스트하고 있습니다. hello world를 컴파일하면 잘 컴파일 된 것처럼 보이지만 hello.cpp를 1000 번 반복하는 동일한 프로그램으로 변경하면 생성되는 elf 파일의 크기가 정확히 동일합니다. 어떤 변화가 있어도 파일은 항상 같은 크기이고 내가 말할 수있는 한 동일한 내용을 가지고 있습니다. 이게 뭐야?내 크로스 컴파일러가 항상 동일한 파일 컴파일
답변
자세한 내용이 없으면 많은 도움을받을 수 없습니다. 하지만 여기에 몇 가지 아이디어가 있습니다 :
바비 (Bobby)가 말한 것처럼 올바른 파일을 전달하고 있습니까?
실행중인 실행 파일이 생성되는 것이 확실합니까?
실제로 컴파일이 성공 했습니까? 실행중인 실행 파일은 현재 컴파일하려고 시도한 것이 아니라 마지막으로 성공적으로 실행 한 실행 파일 일 수 있습니다.
viraptor가 제안 했으므로 은 (는) 파일들이 동일하다는 것을 절대적으로 확신합니까? diff는 그들이 동일하다고 말합니까? 변경 사항이 무엇이든간에 최적화 된 상태 일 가능성이 있습니다. 특히 호출되지 않은 코드에서 변경 작업을 수행하는 경우 특히 그렇습니다.
정말로, 당신이하는 일을 실제로 생각하고있는 것이 아닙니다.
당신의 컴파일 명령을 확인하십시오 - 그들은 명령 줄이나 메이크업 파일이든 될 - 정확합니다.
실행 파일을 삭제하여 새 파일이 실제로 생성되는지 확인해야합니다.
특히 정크를 컴파일하고 컴파일하는 경우 컴파일러가 수행하는 작업을 확인하십시오. 컴파일해서는 안됩니다. 그렇다면 컴파일하는 것이라고 생각하는 것을 컴파일하지 않습니다.
나는 diff를 실행했고 "분명히 말할 수있는 한"분명히 충분하지 않습니다. 필자가 컴파일 한 각 프로그램의 실제 프로그램과 관련된 .text 섹션은 elf 파일의 다른 세그먼트와 비교할 때 무시할 만하다고 생각합니다. hello.cpp, nothello.cpp 및 junk.cpp를 컴파일했습니다. 안녕하세요와 nothello는 (다르지는 않았지만) 다르며, 쓰레기는 컴파일되지 않았습니다. –
"내가 말할 수있는 한"은 무엇을 의미합니까? diff
또는 다른 유틸리티를 사용하여 확인할 수 있습니다. 일부 소형 장치에 교차 컴파일러를 사용하는 경우 지정된 크기의 블록으로 출력을 할당하거나 대상 장치 크기를 미리 할당해야 할 수 있습니다. 일부 도구를 사용하여 실제로 정확히 동일한 파일을 얻을 수 있는지 확인할 수 있습니까?
정확히 같은 파일을 얻지 못하는 것 같습니다.지금 당장 우려되는 점은 gcc에서 정적 라이브러리 플래그를 선언했기 때문에 동적 링크가 발생하지 않아야한다는 것입니다. 안녕 세상과 빈 메인을 컴파일 할 때 hello world를 표시 할 때 종종 많은 지시가 필요하지만 "거의"동일합니다. –
- 1. 컴파일 단위에서 C/C++ 컴파일러가 최적화되어 있습니까?
- 2. SBCL로 크로스 컴파일
- 3. Qt 크로스 컴파일
- 4. ARM 장치 용 라이브러리 크로스 컴파일
- 5. 크로스 컴파일 매크로 이름
- 6. 크로스 컴파일 문제 icu
- 7. cmake 크로스 컴파일
- 8. qt 크로스 컴파일
- 9. Android 및 크로스 컴파일
- 10. x86에서 MIPS 라우터를위한 크로스 컴파일
- 11. 크로스 컴파일 대 가상 머신
- 12. 크로스 컴파일 VxWorks 6.4 용 부스트 1.40
- 13. 인텔에서 암으로 라이브러리 크로스 컴파일
- 14. 컴파일러가 확장 코드없이 컴파일 할 수 있습니까?
- 15. Windows에서의 Linux 용 크로스 컴파일
- 16. Cygwin GCC 크로스 컴파일 바이너리?
- 17. ARM 용 크로스 컴파일 펄
- 18. 크로스 플랫폼 구축/컴파일 솔루션
- 19. 크로스 스레드 호출 컴파일 문제
- 20. Qt 애플리케이션의 크로스 플랫폼 컴파일
- 21. QT Creator - 크로스 플랫폼 컴파일
- 22. JEDI 컨트롤이 항상 다시 컴파일
- 23. 내 (x86-> 64) windows 컴파일러가 컴파일되지 않는 이유는 무엇입니까?
- 24. PHP 컴파일러가 코드를 비교합니까?
- 25. MinGW - 크로스 컴파일 도구 - 최신 버전?
- 26. 크로스 도메인 아약스 파일 업로드
- 27. VS2008의 파일 컴파일 순서
- 28. 리눅스 크로스 컴파일 및 동적 라이브러리/링크
- 29. 프로그램에서 항상 동일한 값을 생성합니까?
- 30. Solaris에서 Windows로 크로스 컴파일 (Open) 하시겠습니까?
Ahm ... 올바른 파일을 전달하고 있습니까? – Bobby
또는 편집기에서 "저장"을 클릭하는 것을 잊었습니까? (나도 그랬어) – Dan
ELF 실행 파일의 최소 크기가 있습니까? (예 : Windows EXE)? "hello world"는 1000 회 반복하더라도 동적으로 링크되어 있으면 아주 작은 프로그램이 될 것입니다. 물론, 달리 실행하면 분명히 차이가납니다. – cHao