memcpy 나 printf 함수가 선언되어 있지 않다거나 하는 에러가 많습니다.
그래서 string.h 나 stdio.h 같은 헤더파일들을 추가해줘서 에러를 수정해서 잡기는 하는데
기존의 4.1.1 버전에서 개발한 프로그램이 워낙 크기도 하고 이런 에러들이 너무 많아서요;
다 수정하는게 맞겠지만 급하게 필요할 때에 임시방편으로 할 수 있는 방법이 있지 않을까 해서 질문드렸습니다.
libstdc++ 버전은 컴파일 버전과 맞게 설정되어 있었습니다.
제 생각에는 4.4.5 버전에서는 오류검사를 좀 더 엄격하게 하도록 바뀐 것 같습니다.
낮은 컴파일 버전에서 개발한 프로그램을 높은 컴파일 버전에서 돌리려니까 이런 문제점들이 발견되네요..;
memcpy나 printf 모두 cstring 이나 cstdio 를 포함하시면 될 듯 한데, 파일들마다 정의하시기 힘드시니까요...
프로젝트 선언 부분에서 정의하시면 될 것 같습니다. g++ 부분에 -l 옵션으로 cstring과 cstdio등을 추가해주시면 되지 않을까요?
문법에러가 그렇게 많이 발생하나요?
4.1.1 버전에서 컴파일 성공한 소스코드도 4.4.5 에서 잘 컴파일이 되는 것을 확인하였습니다.
에러 내용이 어떻게 되려나요?
4.1.2 이후의 Release Notes 를 보아도 문법의 변화 때문에 일어날 오류는 없는 것 같습니다.
혹, libstdc++ 버전이 다르거나, 다른 설정 때문에 그런 것은 아닐까요?
memcpy 나 printf 함수가 선언되어 있지 않다거나 하는 에러가 많습니다.
memcpy 나 printf 함수가 선언되어 있지 않다거나 하는 에러가 많습니다.
그래서 string.h 나 stdio.h 같은 헤더파일들을 추가해줘서 에러를 수정해서 잡기는 하는데
기존의 4.1.1 버전에서 개발한 프로그램이 워낙 크기도 하고 이런 에러들이 너무 많아서요;
다 수정하는게 맞겠지만 급하게 필요할 때에 임시방편으로 할 수 있는 방법이 있지 않을까 해서 질문드렸습니다.
libstdc++ 버전은 컴파일 버전과 맞게 설정되어 있었습니다.
제 생각에는 4.4.5 버전에서는 오류검사를 좀 더 엄격하게 하도록 바뀐 것 같습니다.
낮은 컴파일 버전에서 개발한 프로그램을 높은 컴파일 버전에서 돌리려니까 이런 문제점들이 발견되네요..;
답글 감사합니다. !!
앗, C 관련 라이브러리가 많았나 보군요...
memcpy나 printf 모두 cstring 이나 cstdio 를 포함하시면 될 듯 한데, 파일들마다 정의하시기 힘드시니까요...
프로젝트 선언 부분에서 정의하시면 될 것 같습니다. g++ 부분에 -l 옵션으로 cstring과 cstdio등을 추가해주시면 되지 않을까요?
그런데 C++ 프로젝트인가요, C 프로젝트인가요? 그렇게 많이 쓸 이유가...;;;;
이건 또 먼 개솔...
-l 옵션은 라이브러리 추가하는건데 헤더 파일이랑 먼 상관...
라이브러리랑 헤더 파일이랑 구분 못하나 보네...
하긴 그니까 저번에 헤더 파일이 /usr/lib 밑에 있다고 개드립을 쳤었지...
개코메디다 진짜...
정확한 에러 메세지를 알려 주세요
strict하게 검사해서 생기는 문제는 해당 에러 메세지로 검색을 해보거나 해서 해당 문법 검사에 맞는 것을 꺼주는 옵션을 찾아야 합니다. 컴파일러 에러 메세지 옆에 해당 옵션을 출력해 주는 경우도 있습니다.
저는 최근 컴파일러를 쓰면서 이런 문제를 자주 접했는데 "Warning도 error다"는 신념에 따라 웬만하면 경우에는 소스를 고침으로 서 해결 합니다.
여기에 한표
Warning도 error (-Werror)라는데 동의하구요.
굳이 내가 유지하는 코드가 아닌 경우, CFLAGS에 -include {header file} 정도를 해주면 좋겠네요.
g++ -include stdio.h 이런식으로..
댓글 달기