makefile .mod правило компиляции
Я изменяю make-файл кода. После компиляции я вижу, что генерируются некоторые *.mod файлы. Посмотрев онлайн, я понял, что это файлы модулей, но не вижу для них правила компиляции. Я пытаюсь изменить каталог, в котором эти файлы создаются. Я могу изменить правило для объектных файлов, но не могу найти правило, которое генерирует файлы *.mod.
Глядя на make-файл, может кто-нибудь посоветовать мне, если строка в этом файле генерирует их или как изменить их каталог. Вот make-файл:
# GNU Makefile
# Paths
SDIR=./solver
ODIR=./obj
_CASE=./WorkCases/problem
CASE=$(SDIR)/$(_CASE)
TOP = .
FC = ifort
FFLAGS = -fpp -O1 -DPTR_INTEGER8 -warn nousage
# Define rule to make .f90
$(ODIR)/%.o : $(SDIR)/%.f90
$(FC) -c $(FFLAGS) $< -o $@
# set executable name
EXEC = $(dir ${CASE})/$(basename $(notdir ${CASE})).out
# shared global variables
_SHARED_OBJ = shared_modules.o main_vars.o debug_vars.o
SHARED_OBJ = $(patsubst %,$(ODIR)/%,$(_SHARED_OBJ))
OBJ = ${_SHARED_OBJ} $(_CASE).PARAMS.o
OBJ = $(patsubst %,$(SDIR)/%,$(_OBJ))
MAIN_OBJ = $(ODIR)/main.o
main : ${SHARED_OBJ} $(OBJ) $(MAIN_OBJ)
$(FC) ${FFLAGS} $(OBJ) $(MAIN_OBJ) -o $(EXEC) -lstdc++ -shared-intel
1 ответ
Вы можете указать каталог назначения для файлов.mod с помощью опции компилятора -module.
-module <directory>
Смотрите документацию ifort здесь:
Вы можете использовать опцию компиляции пути модуля, чтобы указать каталог для создания файлов модуля. Если вы не используете эту опцию, файлы модуля создаются в текущем каталоге.