• 북마크
  • 추가메뉴
어디로 앱에서 쉽고 간편하게!
애플 중고 거래 전문 플랫폼
오늘 하루 보지 않기
KMUG 케이머그

소프트웨어

[App 개발] 어떤 부분에서 문제가 생긴걸까요?

본문

오브젝트C를 공부해 보기 전에 일단 C부터 공부해 보고 있습니다.
최근 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;
}
0 0
로그인 후 추천 또는 비추천하실 수 있습니다.
포인트 63
가입일 :
2006-08-21 23:22:15
서명 :
미입력
자기소개 :
미입력

최신글이 없습니다.

최신글이 없습니다.

댓글목록 3

hongjuny님의 댓글

clear() 라는 함수는 아마도 화면을 클리어하는 함수로서 사용된 것이겠죠? 맥에서는 도스 커맨드 라인같은 것이 정의되어 있지 않으므로 clear() 함수는 정의되어 있지 않습니다. 따라서 그 행을 삭제하여 주셔야 정상적으로 컴파일될 것입니다. 지금 링커 오류는 그 함수가 정의되어 있지 않기 때문에 발생한 것입니다.

감자좋아님의 댓글

감사합니다.~ ^^
결국 clear()함수가 문제였던 거군요.

龍佳利님의 댓글

마스터님께서 잘 말씀해 주셨구요. 더 궁금한 분들을 위해 자세히 설명하자면.

위 오류는 링크 오류입니다.

clear()는 curses.h에 정의되 있습니다.

clear()를 쓰고 싶으시다면 빠진 라이브러리를 링크해 주면 됩니다.

간단히 테스트 해 보면 위에 올린 소스를 ctest.cpp로 만들어 저장하고

터미널에  g++ -o ct ctest.cpp -lncurses

라고 입력해 보시면 컴파일 링크 모두 성공합니다.

다시 XCode로 돌아와서 빠진 라이브러리를 링크해 주면 되는데,

curses를 넣고 싶으면 libcurses.dylib를 프로젝트에 넣으면 됩니다.

터미널에 open /usr/lib라고 입력하면 라이브러리들이 주욱 나옵니다.

여기서 해당 라이브러리를 집어다가 프로젝트 트리 적당한 곳에 넣어주고

컴파일 다시 해 보시면 성공하실겁니다.

전체 1 건 - 1 페이지
2010.06
25

열람중 [App 개발] 어떤 부분에서 문제가 생긴걸까요?

오브젝트C를 공부해 보기 전에 일단 C부터 공부해 보고 있습니다. 최근 Xcode내의 GCC로 C프로그래밍 예제를 똑같이 작성해 보고 있는데, GCC에서는 제공하지 않는 헤더파일과 함수들로 인해 적응에 어려움을 겪고 있습니다. 문제가 있는 부분…