Я сделал бы это как это:
get-content tmp.log -encoding Unicode | set-content new.log -encoding UTF8
Мое понимание - то, что - кодирование опции выбирает кодирование, в котором файл должен быть считан или записан.
Основываясь на вашем описании, я подозреваю, что вы говорите о скрипте, который находится внутри свойства события в теге HTML (например, onclick). В этом случае код сценария должен быть закодирован в HTML. Элайджа попал в точку.
Например:
<input type="submit" onclick="if(somevar && othervar) callFunc("clicked");">
Вам не нужно делать это внутри блока
.
HEADERS = program.h headers.h
default: program
program.o: program.c $(HEADERS)
gcc -c program.c -o program.o
program: program.o
gcc program.o -o program
clean:
-rm -f program.o
-rm -f program
(имейте в виду, что make требует табуляции вместо отступа пробела, поэтому обязательно исправьте это при копировании)
Однако для поддержки большего количества файлов C вы должны Придется создать новые правила для каждого из них. Таким образом, для улучшения:
HEADERS = program.h headers.h
OBJECTS = program.o
default: program
%.o: %.c $(HEADERS)
gcc -c $< -o $@
program: $(OBJECTS)
gcc $(OBJECTS) -o $@
clean:
-rm -f $(OBJECTS)
-rm -f program
Я попытался сделать это как можно проще, исключив такие переменные, как $ (CC) и $ (CFLAGS), которые обычно встречаются в make-файлах. Если вам интересно в этом разобраться, надеюсь, я дал вам хорошее начало.
Вот Makefile, который я люблю использовать для исходного кода C. Не стесняйтесь использовать его:
TARGET = prog
LIBS = -lm
CC = gcc
CFLAGS = -g -Wall
.PHONY: default all clean
default: $(TARGET)
all: default
OBJECTS = $(patsubst %.c, %.o, $(wildcard *.c))
HEADERS = $(wildcard *.h)
%.o: %.c $(HEADERS)
$(CC) $(CFLAGS) -c $< -o $@
.PRECIOUS: $(TARGET) $(OBJECTS)
$(TARGET): $(OBJECTS)
$(CC) $(OBJECTS) -Wall $(LIBS) -o $@
clean:
-rm -f *.o
-rm -f $(TARGET)
Он использует возможности подстановочных знаков и patsubst утилиты make для автоматического включения файлов .c и .h в текущий каталог, что означает, что когда вы добавляете новые файлы кода в свой каталог, у вас не будет для обновления Makefile. Однако, если вы хотите изменить имя сгенерированного исполняемого файла, библиотек или флагов компилятора, вы можете просто изменить переменные.
В любом случае, пожалуйста, не используйте autoconf. Я умоляю тебя! :)
Например, этого простого Makefile должно быть достаточно:
CC=gcc CFLAGS=-Wall all: program program: program.o program.o: program.c program.h headers.h clean: rm -f program program.o run: program ./program
Обратите внимание, что в следующей строке после очистки и запуска должно быть
, а не пробелы.
ОБНОВЛЕНИЕ Применены комментарии ниже
all: program
program.o: program.h headers.h
достаточно. остальное неявно
В зависимости от количества заголовков и ваших привычек разработки вы можете захотеть изучить gccmakedep. Эта программа проверяет ваш текущий каталог и добавляет в конец make-файла зависимости заголовков для каждого файла .c / cpp. Это перебор, когда у вас есть 2 заголовка и один программный файл. Однако, если у вас есть 5+ небольших тестовых программ и вы редактируете один из 10 заголовков, вы можете доверить make пересборку именно тех программ, которые были изменены вашими модификациями.