当前位置: 技术问答>linux和unix
请教如何查找函数所在的库?
来源: 互联网 发布时间:2015-11-02
本文导语: 从书上抄了一段代码如下: //test.c #include #include int main(void){ struct timespec tlast; if( clock_getres(CLOCK_REALTIME,&tlast) ) perror("Failed to get clock resolution"); else if(tlast.tv_sec !=0 ) ...
从书上抄了一段代码如下:
//test.c
#include
#include
int main(void){
struct timespec tlast;
if( clock_getres(CLOCK_REALTIME,&tlast) )
perror("Failed to get clock resolution");
else if(tlast.tv_sec !=0 )
printf( "AA" );
else printf("clock resolution:%ld nanosecondsn",(long)tlast.tv_nsec);
return 0;
}
在redhat下make,编译时能正常通过,但连接时报告clock_getres函数undefined,应该是连接时未找到该函数所在的库。
请教如何确定该函数所在的库,make文件中应该增加什么选项?
//test.c
#include
#include
int main(void){
struct timespec tlast;
if( clock_getres(CLOCK_REALTIME,&tlast) )
perror("Failed to get clock resolution");
else if(tlast.tv_sec !=0 )
printf( "AA" );
else printf("clock resolution:%ld nanosecondsn",(long)tlast.tv_nsec);
return 0;
}
在redhat下make,编译时能正常通过,但连接时报告clock_getres函数undefined,应该是连接时未找到该函数所在的库。
请教如何确定该函数所在的库,make文件中应该增加什么选项?
|
gcc -o test test.c -lrt
需要librt,在man里面可以查到
需要librt,在man里面可以查到
|
你的问题应该是少了某个头文件,如果是系统的api,man一下,都会告诉你需要的头文件。
gcc时,如果需要特别的库,用-L参数指定库路径,用-l指定库名。
gcc时,如果需要特别的库,用-L参数指定库路径,用-l指定库名。
|
man一般都会有相关函数的信息的,如果没有那么这个函数一般就不是系统本身的。
|
试试这个命令 ldconfig