[App 개발] 어떤 부분에서 문제가 생긴걸까요?
본문
최근 Xcode내의 GCC로 C프로그래밍 예제를 똑같이 작성해 보고 있는데, GCC에서는 제공하지 않는 헤더파일과 함수들로 인해 적응에 어려움을 겪고 있습니다.
문제가 있는 부분을 알려주시면 감사하겠습니다. ^^
예제는 다음과 같습니다.
오류메시지를 캡처한 사진은 첨부해두었습니다.
#include
#include
#include
int main (int argc, const char * argv[]) {
int *arScore;
int i, stNum;
int sum;
clear();
printf("학생수를 입력하세요 : ");
scanf("%d",&stNum);
arScore=(int *)malloc(stNum * sizeof(int));
if(arScore == NULL) {
printf("메모리가 부족합니다.
");
exit(0);
}
for (i=0; i printf("%d번 학생의 점수는? ",i+1);
scanf("%d",&arScore[i]);
}
sum=0;
for (i=0; i sum+=arScore[i];
}
printf("
총점은 %d점이고 평균은 %d점입니다.
", sum,sum/stNum);
free(arScore);
getchar();
return 0;
}
최신글이 없습니다.
최신글이 없습니다.
댓글목록 3
hongjuny님의 댓글
clear() 라는 함수는 아마도 화면을 클리어하는 함수로서 사용된 것이겠죠? 맥에서는 도스 커맨드 라인같은 것이 정의되어 있지 않으므로 clear() 함수는 정의되어 있지 않습니다. 따라서 그 행을 삭제하여 주셔야 정상적으로 컴파일될 것입니다. 지금 링커 오류는 그 함수가 정의되어 있지 않기 때문에 발생한 것입니다.
감자좋아님의 댓글
감사합니다.~ ^^
결국 clear()함수가 문제였던 거군요.
龍佳利님의 댓글
마스터님께서 잘 말씀해 주셨구요. 더 궁금한 분들을 위해 자세히 설명하자면.
위 오류는 링크 오류입니다.
clear()는 curses.h에 정의되 있습니다.
clear()를 쓰고 싶으시다면 빠진 라이브러리를 링크해 주면 됩니다.
간단히 테스트 해 보면 위에 올린 소스를 ctest.cpp로 만들어 저장하고
터미널에 g++ -o ct ctest.cpp -lncurses
라고 입력해 보시면 컴파일 링크 모두 성공합니다.
다시 XCode로 돌아와서 빠진 라이브러리를 링크해 주면 되는데,
curses를 넣고 싶으면 libcurses.dylib를 프로젝트에 넣으면 됩니다.
터미널에 open /usr/lib라고 입력하면 라이브러리들이 주욱 나옵니다.
여기서 해당 라이브러리를 집어다가 프로젝트 트리 적당한 곳에 넣어주고
컴파일 다시 해 보시면 성공하실겁니다.