컴퓨터 엑셀 워드 포토샵 구글어스 WINDOWS JAVASCRIPT JAVA C++

 
Thursday, November 23, 2006

C언어] 실행시 오류(런타임 에러): runtime error R6002 - floating point not loaded


컴파일은 잘 되는데, 컴파일된 실행파일(exe)을 실행하면

runtime error R6002 - floating point not loaded

이런 "런타임 에러"가 나는 경우가 있습니다. 부동소수점 라이브러리 가 실행파일에 포함되지 않았기 때문입니다. 부동소수점 라이브러리는 용량이 크기 때문에 필요한 경우에만 포함시킵니다.


예를 들어 다음과 같은 경우 이런 에러가 납니다:

#include <stdio.h>

int main(void) {

  printf("%f\n", 2);

  return 0;
}



그리고 위의 경우, 런타임 에러 (floating point...) 와 무관하게, 0.000000 이라는 값이 출력되므로 역시 오류.


다음과 같이 하면 에러가 없습니다:

#include <stdio.h>

int main(void) {

  printf("%f\n", (double) 2);
  // 또는
  printf("%f\n", 2.0);

  return 0;
}

숫자 2 를 (double) 이렇게 실수로 캐스팅(변환)해 주든지, 2.0 이라고 뒤에 소수점을 붙이면 됩니다.


즉, 소스에서 실수 연산에 대한 무슨 코드가 있어야, 부동 소수점 라이브러리가 포함됩니다.





소스의 내용이 어떻든 강제로 부동 소수점 라이브러리를 포함시키려면 소스에
double dummy = 0.0;
이런 식으로 아무 실수형 변수 하나를 "지역 변수"로 정의해 주면 됩니다. 그러나 이 경우, 컴파일러 설정에 따라, "쓰지 않는 지역 변수가 있다"는 경고가 나올 수 있습니다: "warning C4189: 'dummy' : local variable is initialized but not referenced"

dummy 변수를 무의미한 작업에 한번 사용하면 경고가 없어집니다. 또는 pragma 를 사용하는 방법도 있습니다: ▶▶ C언어 VC++] 특정 경고(워닝)메시지 출력 일시 중지 프라그마; pragma warning Off




tag: cpp
C언어 | C/C++ (Visual C++)

0 Comments:

Post a Comment

<< Home RSS 2.0 feed

구글 Google 에서 제공하는 무료 블로그 서비스인 블로거 Blogger 의 인터넷 주소는 www.blogger.com 입니다. Blogger 에 블로그를 만들면, blogspot.com 이라는 주소에 블로그가 생성됩니다.
블로그를 직접 방문하지 않고도 최신 게시물을 구독하려면 RSS 2.0 feed 주소를 리더기에 등록하시면 됩니다.
Previous Posts
Monthly Archives
Top