아키텍쳐가 다르다고 결과물이 바뀌는게 말이 됨? 진짜 크로스컴파일 하나도 몰라서 물어봄
쟤만 저런 얘기 하는거면 모르겠는데 다른데서도 비슷하게 얘기하는걸 몇번 들어서
스카이레이크는 1+1=2이라고 하고 아이스레이크는 1+1=3이라고 하진 않을거 아냐
아키텍쳐가 다르다고 결과물이 바뀌는게 말이 됨? 진짜 크로스컴파일 하나도 몰라서 물어봄
쟤만 저런 얘기 하는거면 모르겠는데 다른데서도 비슷하게 얘기하는걸 몇번 들어서
스카이레이크는 1+1=2이라고 하고 아이스레이크는 1+1=3이라고 하진 않을거 아냐
아키텍처별로 인코딩, 명령어, 레지스터 다름. 같은 아키텍처라도 지원하는 명령어가 다를 수 있음 (SSE, AVX)
그게 빌드 결과물에도 차이를 주나 혹시??
빌드된 결과가 만드는 출력이 같지, 빌드된 결과 그러니까 바이너리가 다르고. 위에 말한대로 명령어셋이 다르니까. 혹시 cpu 아키텍쳐가 스카이레이크 아이스레이크 머 이런거 말하는건 아니겠지? 당연히 amd64 armhf 이런거 이야기하는거지?
우문현답
내가 묻고 싶었던건 amd64에서 타겟 아키텍처를 arm64로 빌드하건, arm64에서 타겟을 arm64로 빌드하건 최종 결과물은 동일하지 않냐는 의미였어
바이너리가 다르게 나오니 출력 결과도 같을 거란 보장은 없지 않을까 c나 c++수준의 컴파일언어는 - dc App
그건 버그 아닌가
CPU 아키텍쳐에 따라서 부동소수점 계산 결과가 다를 수 있음. 레지스터 비트 수가 차이나서 그러는 걸로 안다. - dc App
아 정밀도 면에서 차이나는거지?
근데 컴파일은 정수연산일건데
빌드 결과물이면 걍 exe 비너리가 바뀌기도 하고. 크로스 컴파일이면, A cpu에서 컴파일을 한 뒤, B cpu에 쓸 목적인거를 이야기 함
크로스 컴파일이면 보통 A cpu에서 컴파일러 돌려서 나온 exe를 B에서 실행하는데, 이런 경우에 B는 컴파일을 돌릴 능력이 없는 좆구데기 임베딩 cpu일 확률이 높거나 그런 경우임
같은 소스 같은 버전에서 크로스 컴파일 했는데 결과 다른 경우도 있더라.
신기하네
빌드결과는 어떤 exe파일을 생성하는지 얘기하는거고 니가 비유든 1+1=2이 1+1=3 되는건 생성된 exe 실행결과지
컴파일러에 따라서도 바이너리 결과가 바뀐다 게이야...
최적화나 그런건 차이 나겠지 ㅇㅇ
내말은 같은 컴파일러 써도 그런가 궁금했던거
마이크로아키텍처 갤러리로
그런 갤러리가 있었노
ㅇㅇ 내가 만들어서 있음
무슨 글 쓰고 놀까
너도 전공자야?
디지털시스템디자인 이야기
하모하모
질문글 올려도 되나 그럼
근데 나밖에 없어서 내가 모르면 끝임 ㅋㅋㅋㅋㅋ
디시에 검색 돌려서 아키텍처 얘기하는 애들 있으면 다 긁어모아야겠네 ㅋㅋ
ㅇㅇ 관계있음
이따 밥먹고 글 써봄