Свързани въпроси 'gnu-make'
Специфична за целта променлива на Makefile и множество извиквания към основна цел, нищо не трябва да се прави
Това, което бих искал да направя с GNU Make, е да имам единична основна цел, която може да бъде извикана с леки вариации в зависимост от действителната извикана цел. За да постигна това, опитах да използвам специфични за целта променливи, както е...
239 изгледи
schedule
18.09.2022
nmake хвърля грешка, ако променливата не е дефинирана
Имам makefile, който изпълнявам през nmake, за разлика от gnumake.
Имам някакъв код, взет от makefile, предназначен за gnumake...
# out_repo =
ifndef out_repo
$(error out_repo is not set)
endif
Това не работи с nmake. Има ли начин в...
61 изгледи
schedule
16.09.2022
Make: синтактична грешка близо до неочакван токен `--initialization'
Опитвам се да напиша 'if' check in define директива в един от нашите make файлове. Всъщност се опитвам да проверя платформата и да продължа с настройката на средата.
define templ_32
mkdir -p $(@D)
if [ "$(PLAT)" = "x86_64" ]; then env...
1313 изгледи
schedule
28.09.2022
Направете чувствителност на файла към дефинициите на предпроцесора
Написах make файл.
В make файла използвах променлива, да кажем EXTRAFLAGS, която изглежда така.
EXTRAFLAGS += -D _MSC_VER
EXTRAFLAGS += -D BINARYINPUT
EXTRAFLAGS += -D ENABLEVERSION2D2
Освен това използвам флагове на компилатора
CFLAGS...
465 изгледи
schedule
24.11.2023
Обяснете Makefile, генериран от mkmakefile (Linux ядро, buildroot, busybox)
Скриптът mkmakefile генерира следния Makefile в builddir.
Ако бъдат извикани, всички цели се предават на srcdir Makefile.
Може ли някой да обясни защо? Къде е магията?
lastword = $(word $(words $(1)),$(1))
makedir := $(dir $(call...
663 изгледи
schedule
22.11.2023
$$‹ във вторичното разширяване на неявни правила изглежда грешно - какво пропускам?
Изглежда, че $$< във второстепенно разширение на предпоставка за имплицитни правила, оценява към целта, а не, както бих очаквал от ръководството, първата вече присвоена предпоставка. какво ми липсва
> cat Makefile
.SECONDEXPANSION:...
67 изгледи
schedule
23.10.2022
Makefile понякога игнорира променливата в рецептата
Имам следния Makefile
CXX = g++
CXXFLAGS = -g -Wall
COMPILE = ${CXX} ${CXXFLAGS} -c
LINK = ${CXX} -lpthread
LIB_INC = -Ilib -Iwrappers -Iprocesses
src := $(wildcard lib/*.cpp) $(wildcard wrappers/*.cpp)
obj = $(src:.cpp=.o)
src_1 :=...
367 изгледи
schedule
30.11.2023
Вземете предупредителен изход за make makefile, за да включите нови редове за печат
Как да накарам make да отпечата нови редове с върнати данни от shell? Научавам make, като модифицирам makefile. Би било хубаво да излиза нов ред като нов ред.
# simple trial makefile
$(warning Making where CURDIR is $(CURDIR))
$(warning $(shell...
447 изгледи
schedule
30.10.2023
Как мога да разбера дали makefile се изпълнява от интерактивна обвивка?
Имам makefile, който изпълнява команди, което може да отнеме известно време. Бих искал тези команди да са разговорливи, ако изграждането е инициирано от интерактивна обвивка, но по-тихи, ако не (по-специално от cron). Нещо от рода на (псевдокод):...
3396 изгледи
schedule
23.12.2023
Makefile и имена на изчислени променливи
Получих следния Makefile с няколко компилатора и бих искал да ги извикам в цикъл чрез променливата cc:
cc_x64=x86_64-linux-gnu-gcc
cc_mips=mips-linux-gnu-gcc
all:
for arch in "x64" "mips" ; do\
cc="cc_$$arch";\
$($(cc)) some_file -o...
570 изгледи
schedule
24.11.2022
Makefile игнорира segfault
Опитвам се да използвам GNU Make за автоматично конвертиране на набор от .mmpz файлове в .ogg файлове с помощта на lmms . В момента има бъг в lmms , който го кара да се отклонява от грешка след създаване на изходния файл, което кара make да...
965 изгледи
schedule
16.11.2023
как да напишете makefile, за да се погрижите за промените в заглавния файл
Всъщност имам библиотека "cryptopp" и това, което искам е, когато направя някаква промяна във файл и издам командата make , тя да се погрижи за промените, направени във всеки файл в изходната директория. добре, GNUMakefile на cryptoopp се грижи за...
231 изгледи
schedule
08.01.2024
Грешка в Makefile C++11
Научавам за makefiles. Това, което се опитах е да напиша моя собствена след малко четене. Проблемът е, че винаги получавам грешки, свързани със стандарта c++11, въпреки че поставям необходимия флаг на компилатора в makefile. Ето грешката:...
2200 изгледи
schedule
16.01.2024
Предимство на празно изрично правило и имплицитно правило
Моето разбиране за имплицитното правило е, че имплицитното правило ще се използва само ако няма изрично правило, което съответства на цел. Ако има както изрично правило, така и неявно правило, които съответстват на цел, че ще се използва изричното...
775 изгледи
schedule
04.02.2024
Условни променливи (ifeq) във foreach за изрични правила за създаване
Не мога да разбера правилния синтаксис за използване на условно дефинирана променлива с цикъл foreach в GNU Make 3.81.
Прост makefile
SET := A B C
define da_loop
ifeq ($(S), A)
T := equals_A
else
T := not_equals_A
endif
out_$(S):...
1251 изгледи
schedule
11.11.2023
Make не успява да анализира съвместни цели (множество цели) в makefile
Co-targets (т.е. списък с думи, разделени с интервали за target ), е добре позната функция на Make, която по същество позволява makefile да сглобява "подобни" цели (т.е. те споделят същата рецепта и предварителни условия) в едно правило.
И...
24 изгледи
schedule
29.12.2023
Преминете през директории, започващи с конкретна буква, и изпълнете пакетен скрипт
Имам много директории, които започват с UT_ (UT_abc, UT_def, UT_ghi, ...). Бих искал да отида във всяка от тези директории и да изпълня команда (makefile). Опитах това:
FOR /f %%p IN ("UT_*") DO make "%%p" /s /q
Но не става. Освен това във...
43 изгледи
schedule
01.12.2022
Добавяне към просто разширена променлива
Работя с някакъв MPI код, който трябва да стартирам с mpirun .
Използвам вече съществуващ shell скрипт и искам да добавя към вече съществуващ ред.
Така че мечтата е:
app=mpirun $(app)
Знам, че е възможно да се добавя към променлива с...
4075 изгледи
schedule
06.03.2024
makefile: имплицитни правила: същата цел различни предпоставки
Имам следния makefile:
all: DIR/0/a.txt DIR/1/b.txt DIR/2/c.txt DIR/3/abc.txt
DIR/%/abc.txt: DIR/%/def.xtx # rule #1
mkdir -p $(@D)
touch $@
DIR/%.txt: # rule #2
mkdir -p $(@D)
touch $@
DIR/%.xtx:
touch $@
Искам да...
4515 изгледи
schedule
06.03.2024
Как да генерирам правило за Makefile
Искам да генерирам правила в Makefile по следния начин:
# $(call cc-defs, ccfiles)
define cc-defs
$1.files = $(patsubst %.cc,%.proto,$1)
$1: $1.files
endef
$(foreach ccfile,$(ccfiles), $(eval $(call cc-defs, $(ccfile))))
но не успя...
3676 изгледи
schedule
11.05.2024