2014-12-08 4 views
0

Perf_Event에 libpfm4 라이브러리를 사용하려고하지만 라이브러리 기능이있는 컴파일 링 프로그램 은 다음 오류를 발생시킵니다.라이브러리에 액세스 할 수 없습니다.

/tmp/ccYD603t.o: In function `main': 
    encod.c:(.text+0x44): undefined reference to `pfm_initialize' 
    encod.c:(.text+0x57): undefined reference to `pfm_strerror' 
    encod.c:(.text+0x97): undefined reference to `pfm_get_perf_event_encoding' 
    encod.c:(.text+0xaa): undefined reference to `pfm_strerror' 

collect2: ld returned 1 exit status 

이 오류를 해결하기 위해 시스템에서 라이브러리를 구성하는 방법을 알려주십시오.

+0

이는 링커 오류입니다. 끝날 때 라이브러리 (http://stackoverflow.com/questions/9923495/undefined-reference-shm-open-already-add-lrt-flag-here). – hmjd

+2

컴파일하는 방법을 보여줍니다. – Praxeolitic

+0

문제를 재현 할 수있는 모든 관련 정보를 제공해주십시오. 바로 지금, 우리는 당신이 컴파일하는 코드와 컴파일러를 호출하는 방법을 알지 못한다. 귀하의 질문에 대답하기 위해 두 가지 정보가 모두 필요합니다. – fuz

답변

1

주석에서 언급했듯이 링커 오류가 발생합니다. 이것은 일반적인 오류이기 때문에 우리는이에 대한 참조 질문이 있습니다 :

What is an undefined reference/unresolved external symbol error and how do I fix it?

당신에게 우리는 당신이 컴파일하고 방법을 볼해야 정확히 무엇을 잘못하고있는 대한 자세한 내용을 말하자면. 간단히 말해 라이브러리 헤더를 삽입하고 라이브러리를 연결하지 않을 가능성이 높습니다 (#include). 컴파일러는 링커에게 컴파일 된 코드에 라이브러리 헤더에 선언 된 엔티티가 필요하지만 링커 쵸크는 엔티티의 정의를 알지 못하기 때문에 링커에 지시합니다.

관련 문제