LINUX系统库中的函数定义找不到
LINUX系统库中的函数定义找不到?求助
今天编译了一个静态库,刚开始是找不到 sys/types.h 然后我手动添加到我的工程里面,静态库是编译过了,可是在我调用的时候编译报错:
Error: L6218E: Undefined symbol closedir (referred from putil.o).
Error: L6218E: Undefined symbol nl_langinfo (referred from putil.o).
Error: L6218E: Undefined symbol opendir (referred from putil.o).
....
如closedir()是Dirent.h中的函数。。
请问是什么原因啊!!????求解!
------解决方案--------------------
直接编译即可,不需要链接库文件,试试以下的代码:
------解决方案--------------------
楼主用什么系统,什么编译器啊,看起来不像gcc,又不像VS
------解决方案--------------------
Error: L6218E: Undefined symbol closedir (referred from putil.o).
Error: L6218E: Undefined symbol nl_langinfo (referred from putil.o).
Error: L6218E: Undefined symbol opendir (referred from putil.o).
你这是链接出错。。。。,
应该是没有链接某个库所致,不过不知道你的代码缺少那个苦 , opendir是标准C库,
你试试 -lstdc++ -lpthread -lrt 吧。
今天编译了一个静态库,刚开始是找不到 sys/types.h 然后我手动添加到我的工程里面,静态库是编译过了,可是在我调用的时候编译报错:
Error: L6218E: Undefined symbol closedir (referred from putil.o).
Error: L6218E: Undefined symbol nl_langinfo (referred from putil.o).
Error: L6218E: Undefined symbol opendir (referred from putil.o).
....
如closedir()是Dirent.h中的函数。。
请问是什么原因啊!!????求解!
------解决方案--------------------
直接编译即可,不需要链接库文件,试试以下的代码:
#include <stdio.h>
#include <dirent.h>
int main(int argc, char* argv[])
{
DIR* dirptr = NULL;
struct dirent* entry;
if((dirptr = opendir(argv[1])) == NULL)
{
printf("open dir !\n");
return 1;
}
else
{
while(entry = readdir(dirptr))
{
printf("%s\n", entry->d_name);
}
closedir(dirptr);
}
return 0;
}
------解决方案--------------------
楼主用什么系统,什么编译器啊,看起来不像gcc,又不像VS
------解决方案--------------------
Error: L6218E: Undefined symbol closedir (referred from putil.o).
Error: L6218E: Undefined symbol nl_langinfo (referred from putil.o).
Error: L6218E: Undefined symbol opendir (referred from putil.o).
你这是链接出错。。。。,
应该是没有链接某个库所致,不过不知道你的代码缺少那个苦 , opendir是标准C库,
你试试 -lstdc++ -lpthread -lrt 吧。