[英]Where is the code for dirent.h (opendir, readdir, closedir)? Undefined symbol
我正在使用Tiny C编译器编译一些使用dirent.h的C代码(只是试图列出目录的内容)当我编译时,我得到这些错误:
tcc: error: undefined symbol 'opendir'
tcc: error: undefined symbol 'readdir'
tcc: error: undefined symbol 'closedir'
当我打开dirent.h时,这里有3个函数头:
DIR* __cdecl opendir (const char*);
struct dirent* __cdecl readdir (DIR*);
int __cdecl closedir (DIR*);
这可能听起来很愚蠢,但这些函数头的实际代码在哪里? 在我看来,这就是它不能编译的原因。
编译器如何只用标题编译而不编译.c代码?
谢谢。
显然readdir,opendir,closedir是UNIX函数,在Windows上不可用。
更新:我发现一些移植到Windows的C代码可以工作。 见链接:
http://www.two-sdg.demon.co.uk/curbralan/code/dirent/dirent.html
http://www.two-sdg.demon.co.uk/curbralan/code/dirent/dirent.c
http://www.two-sdg.demon.co.uk/curbralan/code/dirent/dirent.h
停止使用古老的编译器。
只需使用GCC(MinGW-w64)或MSVC。 你需要刚刚在MinGW-w64 GCC中实现的POSIX功能,所以你就是这样。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.