"'dlopen'에 대한 정의되지 않은 참조" 오류는 무엇을 의미합니까?

"'dlopen'에 대한 정의되지 않은 참조" 오류는 무엇을 의미합니까?

c 파일을 컴파일하려고 하면 다음 메시지가 나타납니다.

undefined reference to 'dlopen'
undefined reference to 'dlsym'

이 주제에 대한 다른 게시물에서는 -ldl링커 옵션이나 명령줄에 gcc test.c -ldl. 그러나 이것은 작동하지 않습니다. 이 경우 디렉토리에 .o 파일이나 a.out이 있지만 이 파일을 실행할 수는 없습니다. 명령줄에 ./a.out을 입력하면 segmentation fault오류가 발생합니다. 이것은 내 코드입니다.

#include <stdio.h>
#include <stdlib.h>
#include <dlfcn.h>
#include "PI_GCS2_DLL_PF.h"
int main(){
   void* hPI_Dll = dlopen("test.so", RTLD_NOW);
   int ID = -1;
   PFPI_ConnectRS232ByDevName = (PI_ConnectRS232ByDevName);
   PI_ConnectRS232ByDevName = (PFPI_ConnectRS232ByDevName) dlsym(hPI_Dll, "PI_ConnectRS232ByDevName");

...
}

저는 Raspberry PI와 매우 유사한 RockPI 4(Linux)에서 개발 중입니다. 그렇다면 이 "버그"를 수정하는 방법은 무엇입니까? 라이브러리를 설치해야 합니까?

관련 정보