문제

나는 우분투를 처음 접했지만 이것을 작동시킬 수는 없습니다. 그것은 내 학교 컴퓨터에서 잘 작동하며 내가 무엇을하지 않는지 모르겠습니다. 확인 했어 USR/포함 그리고 Time.h는 괜찮습니다. 코드는 다음과 같습니다.

#include <iostream>
#include <time.h>
using namespace std;

int main()
{
    timespec time1, time2;
    int temp;
    clock_gettime(CLOCK_PROCESS_CPUTIME_ID, &time1);
    //do stuff here
    clock_gettime(CLOCK_PROCESS_CPUTIME_ID, &time2);
    return 0;
}

나는 CodeBlocks를 IDE로 사용하여 빌드하고 실행하고 있습니다. 도움이 좋을 것입니다. 감사합니다.

도움이 되었습니까?

해결책

추가하다 -lrt G ++ 명령 줄의 끝까지. 이것은 librt.so "실시간"공유 라이브러리에서 연결됩니다.

다른 팁

예시:

c++ -Wall filefork.cpp -lrt -O2

을 위한 gcc 버전 4.6.1, -lrt 해야합니다 ~ 후에 filefork.cpp 그렇지 않으면 링크 오류가 발생합니다.

일부는 나이가 많습니다 gcc 버전은 위치를 신경 쓰지 않습니다.

같은 오류가 발생했습니다. 내 링커 명령에는 RT 라이브러리가 포함되어 있습니다 -lrt 정확하고 한동안 작동하고있었습니다. Kubuntu를 다시 설치 한 후 작동이 멈췄습니다.

별도의 포럼 스레드가 제안했습니다 -lrt 프로젝트 객체 파일을 따라 와야합니다. 이동 -lrt 명령의 끝까지 이유에 대한 세부 사항을 모르지만이 문제를 해결했습니다.

GLIBC 버전 2.17 이후 라이브러리 링크 -lrt 더 이상 필요하지 않습니다.

그만큼 clock_* 이제 메인 C 라이브러리의 일부입니다. 당신은 볼 수 있습니다 GLIBC의 역사 2.17 이 변경이 완료된 곳은이 변경의 이유를 설명합니다.

+* The `clock_*' suite of functions (declared in <time.h>) is now available
+  directly in the main C library.  Previously it was necessary to link with
+  -lrt to use these functions.  This change has the effect that a
+  single-threaded program that uses a function such as `clock_gettime' (and
+  is not linked with -lrt) will no longer implicitly load the pthreads
+  library at runtime and so will not suffer the overheads associated with
+  multi-thread support in other code such as the C++ runtime library.

glibc를 업그레이드하기로 결정하면 GLIBC의 호환성 추적기 최신 GLIBC를 사용하는 문제가 있는지 걱정하는 경우.

시스템에 설치된 GLIBC 버전을 확인하려면 명령을 실행하십시오.

ldd --version

(물론, 오래된 glibc (<2.17)를 사용하고 있다면 여전히 필요합니다. -lrt.)

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top