2012-11-08 5 views
0

은 내가 거의 완전하게 작동있어 한 스레드를 처리하는 프로그램을 쓰고 있어요. 불행히도 필자는 익숙하지 않은 구문을 가진 오류 (반복 된 4 번)를 쳤습니다. 여기에 빠른 싹둑는-을 내 컴파일 명령으로, 그리고 오류가 따라야 :
익숙하지 않은 오류

gcc -o threads threads.cpp -pthread<br> 
/tmp/ccy8maS0.o: In function `tenPercentA()': 
threads.cpp:(.text+0xde): undefined reference to `ceil' 
/tmp/ccy8maS0.o: In function `tenPercentB()': 
threads.cpp:(.text+0x1c6): undefined reference to `ceil' 
/tmp/ccy8maS0.o: In function `fiftPercentC()': 
threads.cpp:(.text+0x2ae): undefined reference to `ceil' 
/tmp/ccy8maS0.o: In function `fiftPercentD()': 
threads.cpp:(.text+0x396): undefined reference to `ceil' 
/tmp/ccy8maS0.o:(.eh_frame+0x12): undefined reference to `__gxx_personality_v0' 
collect2: ld returned 1 exit status 

나는 이미 내 프로그램에서 math.h 라이브러리를 포함 시켰습니다, 나는 호출에 대한 올바른 구문을 사용하고 있습니다 :

ceil(tempA); 

여기서 tempA는 반올림해야하는 값을 보유하는 double 값입니다. 제안 사항이 있으십니까? Google에서는 이러한 오류를 Google에서 시도했지만 대부분의 오류와 마찬가지로 귀하와 동일한 패턴으로 구체적인 예를 찾는 것이 어렵습니다.

편집 : 마지막 오류가 여전히 남아 있고, 나는 아무 생각이 무슨 뜻인지, 또는 그것을 해결하는 방법 그러나 내가 (명령 행에 -lm 사용) CEIL 관련된 모든 오류를 해결했습니다. ceil()에 정의되지 않은 참조를 참조

답변

3

:

당신이 보인다는 libm에 링크 누락 될 수 있습니다.

gcc에 해당 통화에 옵션 -lm를 추가하면이 문제를 해결해야한다.


#include 컴파일러가 ceil()의 (고화질)을 알게하는 math.h입니다 보내고. 링커는 나중에 ceil()의 구현이 실제로 즉 libm에 상주하는 위치를 알 필요가있다.

+0

그래, 그냥 알아 냈어! 나는 또한 AKA ++ g 대 GCC로 컴파일, 마지막 오류의 원인이 있었는지 알아 냈어요 감사합니다 :) (I 잘못된 확장자의 파일을 저장) – Baelix

관련 문제