stat () недоступен в симуляторе ios?

Я скомпилировал и связал приложение ios, которое использует lib (libclang), которое использует stat () без ошибок. Но у меня ошибка времени выполнения:

2014-07-07 16: 55: 14.138 Запуск LibClangUsage7Demo [74938: 60b] Обнаружена попытка вызвать символ в системных библиотеках, которого нет на iPhone: stat $ INODE64, вызванный из функции _ZN4llvm3sys2fs6statusERKNS_5TwineERNS1_11file_DemoUE в image7file_ClstatusE.

Код 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. Я вижу, что stat поддерживается iOS (симулятор?): https://developer.apple.com/library/prerelease/ios/documentation/System/Conceptual/ManPages_iPhoneOS/man2/stat.2.html


person 4ntoine    schedule 07.07.2014    source источник


Ответы (2)


Мне сказали, что stat не поддерживается в iOS.

person 4ntoine    schedule 08.07.2014

Проблема в том, что вы создали libclang для OSX и связали его с исполняемым файлом iOS. Вам необходимо собрать libclang для правильной платформы.

stat, безусловно, поддерживается на iOS.

person Jeremy Huddleston Sequoia    schedule 31.01.2016