2017-10-10 2 views
0

나는 속도 향상을 담당하고있는이 C 코드를 가지고있다. 코드는 RasPi에 저장되고 컴파일됩니다. 2 년 전이 코드를 집계하여 컴파일하고 작동합니다. 이제 같은 파일을 컴파일하려고하면 'clock_gettime'에 대한 정의되지 않은 참조가 있다고합니다. 나는 그것을 찾았고 그 함수는 time.h에 정의되어있다. 아마도 헤더가 설치되지 않았거나 코드에서 호출 된 것 같았습니다. 코드의 시작 부분에 #include라고 쓰여 있으므로 문제는 아닙니다. 나는 time.h 헤더가 RasPi에 설치되어 있는지 확인했고 다른 헤더와 함께 거기에 있었다. nano로 열었고 clock_gettime 함수가 정의되었으므로 문제는 아닙니다. 어떻게해야합니까? 이 문제를 어떻게 해결합니까?C에서 헤더의 문제점

+1

'-lrt'에 링크되어 있습니까? – PSkocik

+1

"정의되지 않은 참조"는 링커 문제이며 컴파일 문제는 아닙니다. 나는 당신이'-lrt'와 연결할 필요가 있다고 생각합니다. – yano

+0

어떻게해야합니까? –

답변

1

clock_gettime(2):

사용법 #include < time.h (2.17 전에 만의 glibc에 대한 버전) -lrt와 >
...
연결합니다.

+0

-lrt를 설명하거나 어딘가에 나를 연결시켜 주실 수 있습니까? –

+0

@GordonJohnnyElder'cc -o your_output_executable your_sources_or_object_files ... -lrt' 여기서'cc '는'gcc' 또는'clang'이나 유사한 컴파일러입니다. – PSkocik

+0

나는 당신이 말하는 것을 이해하지 못합니다. 제가 생각하기에 gcc를 사용하고 있다면 gcc filename.c -o outfile -lrt time.h와 같이 파일명을 컴파일 할 파일로, outfile을 컴파일 된 파일로 지정해야합니다. 그 맞습니까? –