undefined reference to dlopen错误实例解决,[root@localhost source]# gcc main.c shared.c dealfun.c -lpthread
/tmp/ccIS98LB.o(.text+0x50b): In function `pthread_deal’:
: undefined reference to `dlopen’
/tmp/ccIS98LB.o(.text+0×523): In function `pthread_deal’:
: undefined reference to `dlerror’
/tmp/ccIS98LB.o(.text+0×556): In function `pthread_deal’:
: undefined reference to `dlsym’
/tmp/ccIS98LB.o(.text+0×572): In function `pthread_deal’:
: undefined reference to `dlerror’
/tmp/ccIS98LB.o(.text+0x5b3): In function `pthread_deal’:
: undefined reference to `dlclose’
collect2: ld returned 1 exit status
: undefined reference to `dlopen’
/tmp/ccIS98LB.o(.text+0×523): In function `pthread_deal’:
: undefined reference to `dlerror’
/tmp/ccIS98LB.o(.text+0×556): In function `pthread_deal’:
: undefined reference to `dlsym’
/tmp/ccIS98LB.o(.text+0×572): In function `pthread_deal’:
: undefined reference to `dlerror’
/tmp/ccIS98LB.o(.text+0x5b3): In function `pthread_deal’:
: undefined reference to `dlclose’
collect2: ld returned 1 exit status
解决这个问题很简单,在编译命令行加上 -ldl 选项即可。如修改的编译命令为:
[root@localhost source]# gcc main.c shared.c dealfun.c -lpthread -ldl