См. этот пример: https://jsfiddle.net/pqhdce2L/
function b64toBlob(b64Data, contentType, sliceSize) {
contentType = contentType || '';
sliceSize = sliceSize || 512;
var byteCharacters = atob(b64Data);
var byteArrays = [];
for (var offset = 0; offset < byteCharacters.length; offset += sliceSize) {
var slice = byteCharacters.slice(offset, offset + sliceSize);
var byteNumbers = new Array(slice.length);
for (var i = 0; i < slice.length; i++) {
byteNumbers[i] = slice.charCodeAt(i);
}
var byteArray = new Uint8Array(byteNumbers);
byteArrays.push(byteArray);
}
var blob = new Blob(byteArrays, {type: contentType});
return blob;
}
var contentType = 'image/png';
var b64Data = Your Base64 encode;
var blob = b64toBlob(b64Data, contentType);
var blobUrl = URL.createObjectURL(blob);
var img = document.createElement('img');
img.src = blobUrl;
document.body.appendChild(img);
makefile имеет очень тупое отношение к вкладкам, все действия каждого правила идентифицируются с помощью вкладок ...... и No 4 пробелов не делают вкладку, только вкладка делает вкладку ...
, чтобы проверить, что я использую команду cat -e -t -v makefile_name
, она показывает, что наличие вкладок с символами ^ I и окончания строк с помощью $ оба являются жизненно важными, чтобы гарантировать, что зависимости заканчиваются должным образом, а вкладки отмечают действие для правил, поэтому что они легко идентифицируются с помощью утилиты make .....
example:
Kaizen ~/so_test $ cat -e -t -v mk.t
all:ll$ ## here the $ is end of line ...
$
ll:ll.c $
^Igcc -c -Wall -Werror -02 c.c ll.c -o ll $@ $<$
## the ^I above means a tab was there before the action part, so this line is ok .
$
clean :$
\rm -fr ll$
## see here there is no ^I which means , tab is not present ....
## in this case you need to open the file again and edit/ensure a tab
## starts the action part
надеюсь, что это поможет !!
В коде VS просто нажмите «Пробел: 4» в правом углу и измените его на вкладку при редактировании Makefile.
Если кто-то из вас использует продукт Intellij, решение для этого следующее:
Other File Types
. Use tab character
и будьте осторожны, значения Tab size
и Indent
должны быть 4. Вы всегда должны писать команду после «вкладки», а не пробела.
Это относится к строке «gcc» (строка № 4) в вашем случае. Вам нужно вставить вкладку перед gcc.
Также замените\rm -fr ll на "rm -fr ll". Вставьте вкладки еще перед этой командой
Это потому, что табуляция заменяется пробелами. Чтобы отключить эту функцию, перейдите к
gedit-> edit-> preferens-> editor
и удалите проверку на
«замените закладку пробелом»
Его довольно старый вопрос, но все же я хотел бы сказать еще об одном варианте с помощью редактора vi/vim
для визуализации вкладок. Если у вас установлен vi/vim
, откройте Makefile
(например, vim Makefile
) и введите :set list
. Это покажет количество вкладок, вставленных, как показано ниже,
%-linux: force$
^I@if [ "$(GCC_VERSION)" = "2.96" ] ; then \$
^I^Iecho ===== Generating build tree for legacy $@ architecture =====; \$
^I^I$(CONFIGURE) $(CWD) $@ legacy; \$
^Ielse \$
^I^Iecho ===== Generating build tree for $@ architecture =====; \$
^I^I$(CONFIGURE) $(CWD) $@; \$
^Ifi$
^Icd build-$@;make$
Ключевым моментом было «HARD TAB» 1. Убедитесь, что вы использовали TAB вместо пробела. 2. Проверьте свой .vimrc на «set tabstop = X»
makefile
из учебника, и это не сработало. Только после удаления пробелов и установкиTab
вместо этого! – rzaaeeff 8 August 2015 в 07:12-v
для командыcat
здесь избыточно, потому что-e
означает-vE
и-t
означает-vT
. – zack 25 April 2016 в 10:38