본문 바로가기

프로그램언어/C++

zlib 컴파일 에러발생.

- 개발환경 Visual C++ 2008 Express

1>------ 빌드 시작: 프로젝트: zlib, 구성: DLL ASM Debug Win32 ------
1>Assembling...
1> Assembling: D:\WorkSpace\zlib-1.2.3\contrib\masmx86\inffas32.asm
1>D:\WorkSpace\zlib-1.2.3\contrib\masmx86\inffas32.asm(647) : error A2070:invalid instruction operands
1>D:\WorkSpace\zlib-1.2.3\contrib\masmx86\inffas32.asm(649) : error A2070:invalid instruction operands
1>D:\WorkSpace\zlib-1.2.3\contrib\masmx86\inffas32.asm(663) : error A2070:invalid instruction operands
1>D:\WorkSpace\zlib-1.2.3\contrib\masmx86\inffas32.asm(720) : error A2070:invalid instruction operands

이 문제를 해결을 위해 검색을 통해 해결을 했습니다.

http://kldp.org/node/101342 에서 해결점을 찾았습니다.

Microsoft Macro Assembler 8.0, included with Visual C++ 2008 Express refuses to assemble a MOVD instruction with a memory operand with an implied size, and requires that "dword ptr" prefix the memory operand.

movd는 32비트인 명령어니까

dword ptr 키워드는 32비트 접근에 쓰이구요
qword ptr 키워드는 64비트 접근에 쓰이구요
word ptr 키워드는 16비트 접근에 쓰이구요


dword ptr를 명시적으로 쳐주는게 맞는듯싶습니다

선언된 부분 에러 : movd mm7,[esi]
해결점 : movd mm7,dword ptr[esi]
kldp에서 좋은 이야기가 있으니깐 참조 해주시면 좋을 듯 합니다.

'프로그램언어 > C++' 카테고리의 다른 글

[MFC] 출력창을 이용한 디버그 내용 출력.  (0) 2009.09.22
zlib을 이용한 간단한 예제  (0) 2009.08.07
log4cxx 사용에 필요한 라이브러리 추출.  (0) 2009.07.31
[c++] template Class  (0) 2009.02.09
[C++] template  (0) 2009.02.09