Turbo-C
C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
터보-C 포럼
Q & A
FAQ
팁&트릭
강좌/문서
자료실
Lua 게시판
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
볼랜드포럼 광고 모집

C/C++ Q/A
[2330] Re:Re:알아냈습니다. gcc에서 오류나는 이유는 -lm을 붙여서 (수학라이브러리 사용시 해야되는 옵션이랍
최준호.스페로 [sparrow] 1899 읽음    2003-04-09 08:25
최준호.스페로 님이 쓰신 글 :
: 안녕하세요 스페로 입니다.
:
: 일단 제가 답변을 달때 돌려 보지 않고 답변 드린점 죄송합니다.
:
: #include<stdio.h>
: #include<math.h>
: #include<conio.h>
:
: float a,b,c,x,X,Y,Z;
:
: int main()
: {
:     printf("a,b,c를 입력해 주세요: ");
:     scanf("%f %f %f",&a,&b,&c);
:
:     x=(b*b)-4*a*c;
:     Z=sqrt(x);
:
:     X=(-b+Z)/(2*a);
:     Y=(-b-Z)/(2*a);
:
:     printf("결과 값은 %.2f, %.2f 입니다.",X,Y);
:     getch();
:     return 0;
: }
: 위와 같이 소스를 변경 해봣습니다.
: 일단 C++빌더6 콘솔위자드에서는 정확한 결과나옵니다. 1 1 -2 입력시 1과 -2의 근을 얻습니다.
:
: 고친 부분이라곤 scanf가 double형을 입력 받지 못하는거 같아서 float로 바꾼거 ...
:
: 그리고 근의 공식을 자세히 보시면 알겟지만 14번과 15번 줄은 sqrt()함수가 필요 없죠
:
: 그리고 님이 gcc를 이용하신다길래 저도 리눅스 서버에서 돌려 봣습니다.
: [root@sparrow-ls c]# gcc math_test.c -o math_test
: /tmp/ccumOZXR.o: In function `main':
: /tmp/ccumOZXR.o(.text+0x75): undefined reference to `sqrt'
: collect2: ld returned 1 exit status
:
: 님과 비스므리한 에러가 발생 하는거 같군요..
:
: 무언가 잘못되었다는 건데
:
: 일단 빌더 컴파일시 문제가 없었기 때문에 다른 문제 같습니다.
:
: 그래서 리눅스에서 다시한번 컴파일을 시도 해보았습니다. g++로
: 아무런 에러 메세지 없이 목적 파일을 얻었고 정상 동작 하는 것을 확인 했습니다.
: 첨부 그림을 확인해 보세요..
:
: 그리고 늦은 시간이라 gcc문제는 좀 모르겟고요 혹 다른분들이나 님이 알게 되시면
: 저도 알려주세요 왜 gcc에서 sqrt함수 사용에 무조건 에러가 나는지...
: 태스트로 그냥 sqrt()함수를 사용해봣는데 무조건 에러가 납니다.
:
: 그럼^^
:
: 사공욱 님이 쓰신 글 :
: : 안녕하세요 이번에 가입했습니다.
: :
: : 저에게는 어려운 c 코딩을 문제로 내서 한참 고민했는데도 안풀리는군요.
: :
: : 문제는 ax제곱+bx+c=0에서 a,b,c를 입력받아 해를 구하는 코딩을 해야합니다...ㅜㅜ
: :
: : 제가 코딩을 해본 것은
: :
: : #include<stdio.h>
: : #include<math.h>
: :
: : double a,b,c,x,X,Y,Z;
: :
: : main()
: : {
: :     printf("a,b,c를 입력해 주세요: ");
: :     scanf("%f %f %f",&a,&b,&c);
: :    
: :     x=(b*b)-4*a*c;
: :     Z=sqrt(x);
: :
: :     X=sqrt((-b+Z)/2a);//14행
: :     Y=sqrt((-b-Z)/2a);//15행
: :
: :     printf("결과 값은 %f, %f입니다.",X,Y);
: : }
: :
: : 이것입니다...
: :
: : 그런데 유닉스 서버에서 gcc 컴파일러로 컴파일을 해보니까
: :
: : 2b.c: In function `main':
: : 2b.c:14: nondigits in number and not hexadecimal
: : 2b.c:15: nondigits in number and not hexadecimal
: :
: : 이런 에러가 자꾸 뜨는 군요...ㅠㅠ
: : 어디서 잘못됐는지 또 math.h에 포함되어 있는 함수들의 종류와 사용법을
: : 구할 수있는 곳을 알려주시면 정말 감사하겠습니다...^^;

+ -

관련 글 리스트
3965         Re:Re: 근이 허수가 나올 때의 처리가 안 되어 있네요. 김백일.cedar 1407 2003/04/09
3964         Re:Re: 근이 허수가 나올 때의 처리가 안 되어 있네요. 최준호.스페로 1524 2003/04/09
3963         Re:Re: 근이 허수가 나올 때의 처리가 안 되어 있네요. 사공욱 1281 2003/04/09
3962         Re:Re: 근이 허수가 나올 때의 처리가 안 되어 있네요. 최준호.스페로 1308 2003/04/09
2329     Re:소스 수정 그래도 연전히 gcc는 안되고 다른 컴파일러들은 잘되고 결과도 정확합니다. 최준호.스페로 1433 2003/04/09
2330         Re:Re:알아냈습니다. gcc에서 오류나는 이유는 -lm을 붙여서 (수학라이브러리 사용시 해야되는 옵션이랍 최준호.스페로 1899 2003/04/09
2333             스페로님 감사합니다...^^ 그런데... 사공욱 1300 2003/04/09
2334                 Re:스페로님 감사합니다...^^ 그런데... 최준호.스페로 1391 2003/04/09
2328     스페로님 안되더군요...ㅠㅠ 사공욱 1467 2003/04/09
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.