почему nacl sdk содержит так много файлов размером 0 байт?

Я новичок в nacl. И я обнаружил, что в каталоге так много файлов размером 0 байт (nacl_sdk/pepper_38/toolchain/win_*/bin).
Когда я меняю платформу проекта на NaCl64 и компилирую (hello_nacl_cpp), появляется ошибка
(ошибка MSB6006: «D:\nacl_sdk\pepper_38\toolchain\win_x86_newlib\bin\x86_64-nacl-gcc.exe ”已退出,代码为 -1)
Но я могу отлаживать пример "hello_world_gles" с платформой PPAPI, поэтому я не уверен, что среда в порядке.
Кто-нибудь может мне что-то сказать? Спасибо!

введите здесь описание изображения


person o0ops    schedule 11.12.2014    source источник
comment
Странно... Я смотрю на перец_38 в Windows, и все эти файлы для меня весят 10 КБ. Насколько я знаю, эти исполняемые файлы просто перенаправляются к реальным исполняемым файлам в win_x86_newlib/libexec. Можете ли вы обновить свой вопрос, указав номера версий из перец_38/README?   -  person binji    schedule 11.12.2014
comment
@binji спасибо за ответ. Я проверил каталог (pepper_38\toolchain\win_x86_newlib\libexec), и там также есть несколько файлов размером 0 байт, включая x86_64-nacl-g++.exe, x86_64-nacl-gcc.exe, x86_64-nacl-ld.exe и cyg*. .dll. Поскольку я из Китая, я не могу установить или обновить напрямую из оболочки nacl_sdk. Я просто извлекаю URL-адреса из naclsdk_manifest2.json и загружаю их с помощью Chrome через goagent. Есть ли проблема?   -  person o0ops    schedule 12.12.2014
comment
Ах я вижу! Проблема в том, что мы используем символические ссылки в стиле cygwin для этих файлов. Средство обновления nacl sdk использует инструмент под названием cygtar.py для правильного извлечения их в Windows. Если вы использовали инструмент для распаковки, который делал копии (вместо создания файлов размера 0), это тоже должно работать.   -  person binji    schedule 13.12.2014
comment
@binji большое спасибо. Я немного знаю о питоне, может быть, я смогу взломать файл сценария :)   -  person o0ops    schedule 13.12.2014


Ответы (1)


Ответьте на мой вопрос.
Как говорит @binji, мы должны использовать cygtar.py(который находится в каталоге sdk_tools) для извлечения файла.
Итак, приступим:
Откройте cygtar.py в текстовом редакторе, вы найдете класс с именем CygTar, который является настоящим работником.
Переместите dwon и вставьте фрагмент кода ниже Main function.< бр/>

def MyLogic():
  os.chdir('D:\\nacl_sdk\\sdk')
  # tar = CygTar('naclports.tar.bz2', 'r', True) #here must use linux file path
  tar = CygTar('naclsdk_win.tar.bz2', 'r', True)
  tar.Extract()

Затем замените sys.exit(Main(sys.argv)) на sys.exit(MyLogic()) в конце файла. Вот и все.
Примечание. Если вы изучили python, вы знаете, что отступ кода очень важен в python, будьте осторожны.
И окончательный код должен выглядеть так: это: введите здесь описание изображения

person o0ops    schedule 15.01.2015