• 카테고리

    질문 & 답변
  • 세부 분야

    시스템

  • 해결 여부

    미해결

struct tm 컴파일 문제

19.05.22 21:24 작성 조회수 458

0

struct tm에 대해서 찾아봤는데 gcc가 아닌 g++ libc인 것 같습니다.

그래서 찾지를 못하는데 선생님이랑 똑같은 makefile로 했는데도 해결이 안되어서

gcc =>g++로 해서 했더니 해결했습니다

혹시 몰라 gcc, g++ 컴파일러 버전을 올렸습니다. 아마 저는 16.04이긴 한데 업데이트가 늦은건가 모르겠네요

 

+++추가

    time_t now;

    struct tm *now_tm;

 

    now = time(NULL);

    printf("current : %ld\n", now);

    

    now_tm = localtime(&now);

처음에 이 부분만 따로 확인하려고 컴파일을 했는데 저런 오류가 나왔습니다. 시간정보 변환하고 다시 make하니 문제가 사라졌네요.

이상하네요. 저 부분만 작성하고나서 g++로 컴파일하면 문제가 사라지긴합니다.. 그래도 다른 분들 참고 부탁드릴게요!!!!

답변 3

·

답변을 작성해보세요.

1

"variable 'xxx' set but not used" 메시지는 변수가 어떤 값으로 설정되었으나 그 이후에 사용되지 않는다는 경고(warning) 입니다. 이 경고가 컴파일 옵션에 -Werror 가 포함되어 경고(warning)도 에러(error)로 간주하게 되어 컴파일 에러가 발생한 것입니다. gcc를 사용했을 때 위와 같은 이유로 컴파일 에러가 발생한 것입니다. g++로 변경했을 때 경고가 나오지 않는 것은 다른 이유가 있을 것 같네요. 

0

컴파일러가 잡아주는 경고가 없어도 버그를 만들어낼 수 있는 방법은 무궁무진 합니다. 컴파일러가 잡아주는 경고를 모두 활성화 해놓고, 또 발생하는 경고들을 무시하지 않고 모두 처리를 해놓아야 버그의 확률을 조금이나마 줄일 수 있습니다. 프로그래밍 하실 때 항상 -Wall -Werror 옵션을 사용하시길 강력히 추천합니다~ ;)

0

유영재님의 프로필

유영재

질문자

2019.05.23

아하 g++로 했을때는 warning 검사없이 g++ -o 실행파일 소스파일만 실행해서 그런 것 같습니다. 선생님 Makefile에는 저런 옵션들이 있군요 참고하겠습니다.