Я новичок в 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, поэтому я не уверен, что среда в порядке.
Кто-нибудь может мне что-то сказать? Спасибо!
почему nacl sdk содержит так много файлов размером 0 байт?
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