我编译并链接了使用lib(libclang)的ios app,它使用stat()而没有错误。但我有运行时错误:
2014-07-07 16:55:14.138 LibClangUsage7Demo [74938:60b]已启动检测到 尝试在系统库中调用不存在的符号 iPhone:从功能调用的stat $ INODE64 图像LibClangUsage7Demo中的_ZN4llvm3sys2fs6statusERKNS_5TwineERNS1_11file_statusE。
引发错误的LLVM代码是(/Unix/Path.inc):
error_code status(const Twine &Path, file_status &Result) {
SmallString<128> PathStorage;
StringRef P = Path.toNullTerminatedStringRef(PathStorage);
struct stat Status;
int StatRet = ::stat(P.begin(), &Status); // failure here
return fillStatus(StatRet, Status, Result);
}
如何在没有符号的stat()的情况下链接应用程序?我该如何修理/走动?
PS。我可以看到iOS(模拟器?)支持stat
:
https://developer.apple.com/library/prerelease/ios/documentation/System/Conceptual/ManPages_iPhoneOS/man2/stat.2.html
答案 0 :(得分:0)
iOS上不支持was said stat
。
答案 1 :(得分:0)
问题是您为OSX构建了libclang并将其链接到iOS可执行文件中。您需要为正确的平台构建libclang。
iOS确实支持stat。