2401_82508090 2024-05-23 17:00 采纳率: 8.7%
浏览 1

在centos服务器上make报错

在centos服务器上make报错如图,makefile代码见代码块,如何解决

img

EXEC = xaorsa2d

SRC_DIR = src
OBJ_DIR = obj

FFT_DIR = $(SRC_DIR)/FFTPACK
CQL3D_SETUP_DIR = $(SRC_DIR)/CQL3D_SETUP

MOD_DIR = mod
OBJ_DIR = obj

INCLUDE_DIRS = 
LIBS = 
F90FLAGS = 
WARNING_FLAGS = 

# per file build warning flags
ORBIT_F_WARNING_FLAGS = 

OBJ_FILES = \
 $(OBJ_DIR)/cauchy_mod.o \
 $(OBJ_DIR)/size_mod.o \
 $(OBJ_DIR)/aorsa2din_mod.o \
 $(OBJ_DIR)/swim_global_data_mod.o \
 $(OBJ_DIR)/precision_mod.o \
 $(OBJ_DIR)/profile_mod.o \
 $(OBJ_DIR)/z_erfc_mod.o \
 $(OBJ_DIR)/types_mod.o \
 $(OBJ_DIR)/zfun_hilbert_mod.o \
 $(OBJ_DIR)/qlsum.o \
 $(OBJ_DIR)/ql_myra.o \
 $(OBJ_DIR)/wdot_sum.o \
 $(OBJ_DIR)/wdot_test.o \
 $(OBJ_DIR)/mets2aorsa.o \
 $(OBJ_DIR)/cauchy_ppart.o \
 $(OBJ_DIR)/fftpack5.1d.o \
 $(OBJ_DIR)/vlog.o \
 $(OBJ_DIR)/aorsaSubs.o \
 $(OBJ_DIR)/sigma.o \
 $(OBJ_DIR)/zfunction.o \
 $(OBJ_DIR)/ztable.o \
 $(OBJ_DIR)/current.o \
 $(OBJ_DIR)/mets2aorsa_myra.o \
 $(OBJ_DIR)/slowDown.o \
 $(OBJ_DIR)/fourier.o \
 $(OBJ_DIR)/assert.o \
 $(OBJ_DIR)/setupblacs.o \
 $(OBJ_DIR)/bessel.o \
 $(OBJ_DIR)/check.o \
 $(OBJ_DIR)/rf2x_setup2.o \
 $(OBJ_DIR)/profile_setup.o \
 $(OBJ_DIR)/eqdsk_setup.o \
 $(OBJ_DIR)/orbit.o \
 $(OBJ_DIR)/eqdsk_plot.o \
 $(OBJ_DIR)/fieldws.o \
 $(OBJ_DIR)/scale.o \
 $(OBJ_DIR)/dql_write.o \
 $(OBJ_DIR)/dshell.o \
 $(OBJ_DIR)/aorsa2dMain.o \
 $(OBJ_DIR)/plot.o \
 $(OBJ_DIR)/aorsa2dSum.o 

OBJ_FFT = \
 $(OBJ_DIR)/cfftb1.o \
 $(OBJ_DIR)/cfftf1.o \
 $(OBJ_DIR)/cffti1.o \
 $(OBJ_DIR)/dfftb.o \
 $(OBJ_DIR)/dfftf.o \
 $(OBJ_DIR)/dffti.o \
 $(OBJ_DIR)/passb.o \
 $(OBJ_DIR)/passb2.o \
 $(OBJ_DIR)/passb3.o \
 $(OBJ_DIR)/passb4.o \
 $(OBJ_DIR)/passb5.o \
 $(OBJ_DIR)/passf.o \
 $(OBJ_DIR)/passf2.o \
 $(OBJ_DIR)/passf3.o \
 $(OBJ_DIR)/passf4.o \
 $(OBJ_DIR)/passf5.o \
 $(OBJ_DIR)/zfftb.o \
 $(OBJ_DIR)/zfftf.o \
 $(OBJ_DIR)/zffti.o
 
OBJ_CQL3D_SETUP = \
 $(OBJ_DIR)/global_data_m.o \
 $(OBJ_DIR)/basis_functions_m.o \
 $(OBJ_DIR)/f_expanded_m.o \
 $(OBJ_DIR)/CQL_kinds_m.o \
 $(OBJ_DIR)/vector_write_m.o \
 $(OBJ_DIR)/read_cql3d.o \
 $(OBJ_DIR)/ceez.o \
 $(OBJ_DIR)/cubic_B_splines_v.o \
 $(OBJ_DIR)/cql3d_setup.o


# Determine machine
# -----------------

UNAME_S := $(shell uname -s)
UNAME_R := $(shell uname -r)
LSB_IS := $(shell lsb_release -is)
LSB_RS := $(shell lsb_release -rs)
HOSTNAME := $(shell hostname)

SYSTEM_IDENTIFIED = 0
ifeq ($(LMOD_SYSHOST),perlmutter)
  ifeq ($(PE_ENV),GNU)
    include makeopts.perlmutter.gnu
    $(info System identified as Perlmutter GNU)
    SYSTEM_IDENTIFIED = 1
  endif
  ifeq ($(PE_ENV),AOCC)
    include makeopts.perlmutter.aocc
    $(info System identified as Perlmutter AOCC)
    SYSTEM_IDENTIFIED = 1
  endif
  ifeq ($(PE_ENV),INTEL)
    include makeopts.perlmutter.intel
    $(info System identified as Perlmutter INTEL)
    SYSTEM_IDENTIFIED = 1
  endif
endif
ifeq ($(NERSC_HOST),cori)
  ifeq ($(PE_ENV),GNU)
    include makeopts.cori.gnu
    $(info System identified as Cori GNU)
    SYSTEM_IDENTIFIED = 1
  endif      
  ifeq ($(PE_ENV),INTEL)
    include makeopts.cori.intel
    $(info System identified as Cori Intel)
    SYSTEM_IDENTIFIED = 1
  endif
endif
ifeq ($(UNAME_S),Darwin) # OSX
  #ifeq ($(UNAME_R),18.7.0)
    include makeopts.osx-mojave
    $(info System identified as osx-mojave)
    SYSTEM_IDENTIFIED = 1
  #endif
endif
ifeq ($(LSB_IS),Ubuntu)
  ifeq ($(LSB_RS),20.04)
    include makeopts.ubuntu20.04
    $(info System identified as Ubuntu20.04)
    SYSTEM_IDENTIFIED = 1
  endif
endif

#$(error EXIT)

ifeq ($(SYSTEM_IDENTIFIED),0)
  $(error No build configuration for this system)
endif


F90          = $(FC) -c $(COMMON_OPTION) #$(INCLUDE_DIRS)
F90_NOSAVE   = $(FC) -c $(COMMON_OPTION2) # $(INCLUDE_DIRS)
F90_r4       = $(FC) -c $(COMMON_OPTION3) #$(INCLUDE_DIRS)
F90_4        = $(FC) -c $(COMMON_OPTION4) #$(INCLUDE_DIRS)
F90_LOAD     = $(FC)    $(COMMON_OPTION) #$(INCLUDE_DIRS)

INLINE=
OPTIMIZATION =  
F90FLAGS += $(INLINE) $(OPTIMIZATION) $(MOD_DIR_FLAG)

COMPILE90          = $(F90)          $(F90FLAGS) $(DEFS)
COMPILE90_NOSAVE   = $(F90_NOSAVE)   $(F90FLAGS) $(DEFS)
COMPILE_r4         = $(F90_r4)       $(F90FLAGS) $(DEFS)
COMPILE90_4        = $(F90_4)        $(F90FLAGS) $(DEFS)

LOADFLAGS = $(DFFTPACK)
LOAD = $(F90_LOAD) $(OPTIMIZATION) 

# remove the "SECONDARY" line and life will be very weird
.SECONDARY:

$(EXEC):  make_directories $(OBJ_FILES) $(OBJ_FFT) $(OBJ_CQL3D_SETUP)
    $(info LIBS are $(LIBS))
    $(LOAD) -o $(EXEC) $(OBJ_FILES) $(OBJ_FFT) $(OBJ_CQL3D_SETUP) $(LOADFLAGS) $(LIBS) 

# Dependencies

${OBJ_DIR}/%.o: ${SRC_DIR}/%.f90
    ${COMPILE90} -c $< -o $@ ${INCLUDE_DIRS} ${WARNING_FLAGS}

${OBJ_DIR}/%.o: ${SRC_DIR}/%.f
    ${COMPILE90} -c $< -o $@ ${INCLUDE_DIRS} ${WARNING_FLAGS}

${OBJ_DIR}/%.o: ${SRC_DIR}/%.F90
    ${COMPILE90} -c $< -o $@ ${INCLUDE_DIRS} ${WARNING_FLAGS}

${OBJ_DIR}/%.o: ${SRC_DIR}/%.F
    ${COMPILE90} -c $< -o $@ ${INCLUDE_DIRS} ${WARNING_FLAGS}

${OBJ_DIR}/orbit.o: ${SRC_DIR}/orbit.f
    ${COMPILE90} -c $< -o $@ ${INCLUDE_DIRS} ${SIGMA_F_WARNING_FLAGS}


$(OBJ_DIR)/rf2x_setup2.o:    $(SRC_DIR)/rf2x_setup2.f 
                         $(COMPILE90_NOSAVE) -o $(OBJ_DIR)/rf2x_setup2.o \
                             $(SRC_DIR)/rf2x_setup2.f $(INCLUDE_DIRS)

$(OBJ_DIR)/profile_setup.o:  $(SRC_DIR)/profile_setup.f
                         $(COMPILE90_NOSAVE) -o $(OBJ_DIR)/profile_setup.o \
                             $(SRC_DIR)/profile_setup.f $(INCLUDE_DIRS)

$(OBJ_DIR)/eqdsk_setup.o:    $(SRC_DIR)/eqdsk_setup.f
                         $(COMPILE90) -o $(OBJ_DIR)/eqdsk_setup.o \
                             $(SRC_DIR)/eqdsk_setup.f $(INCLUDE_DIRS)

$(OBJ_DIR)/orbit.o:          $(SRC_DIR)/orbit.f
                         $(COMPILE90_NOSAVE) -o $(OBJ_DIR)/orbit.o \
                             $(SRC_DIR)/orbit.f $(INCLUDE_DIRS)                 

$(OBJ_DIR)/eqdsk_plot.o:     $(SRC_DIR)/eqdsk_plot.f90
                         $(COMPILE_r4) -o $(OBJ_DIR)/eqdsk_plot.o \
                             $(SRC_DIR)/eqdsk_plot.f90 $(INCLUDE_DIRS) $(WARNING_FLAGS)                     

$(OBJ_DIR)/fieldws.o:        $(SRC_DIR)/fieldws.f
                         $(COMPILE_r4) -o $(OBJ_DIR)/fieldws.o \
                             $(SRC_DIR)/fieldws.f $(INCLUDE_DIRS)

$(OBJ_DIR)/scale.o:          $(SRC_DIR)/scale.f
                         $(COMPILE_r4) -o $(OBJ_DIR)/scale.o \
                             $(SRC_DIR)/scale.f $(INCLUDE_DIRS)                 

$(OBJ_DIR)/dql_write.o:      $(SRC_DIR)/dql_write.f 
                         $(COMPILE_r4) -o $(OBJ_DIR)/dql_write.o \
                             $(SRC_DIR)/dql_write.f $(INCLUDE_DIRS) ${WARNING_FLAGS}

$(OBJ_DIR)/plot.o:           $(SRC_DIR)/plot.f
                         $(COMPILE_r4) -o $(OBJ_DIR)/plot.o \
                             $(SRC_DIR)/plot.f $(INCLUDE_DIRS)                     

### FFTPACK files:

${OBJ_DIR}/%.o: ${FFT_DIR}/%.f
    ${COMPILE90} -c $< -o $@ ${INCLUDE_DIRS}


### CQL3D_SETUP files:

$(OBJ_DIR)/basis_functions_m.o: $(CQL3D_SETUP_DIR)/basis_functions_m.f90
                            $(COMPILE90_NOSAVE) -o $(OBJ_DIR)/basis_functions_m.o \
                                $(CQL3D_SETUP_DIR)/basis_functions_m.f90 $(INCLUDE_DIRS)

$(OBJ_DIR)/f_expanded_m.o:      $(CQL3D_SETUP_DIR)/f_expanded_m.f90
                            $(COMPILE90_NOSAVE) -o $(OBJ_DIR)/f_expanded_m.o \
                                $(CQL3D_SETUP_DIR)/f_expanded_m.f90 $(INCLUDE_DIRS)

$(OBJ_DIR)/global_data_m.o:     $(CQL3D_SETUP_DIR)/global_data_m.f90
                            $(COMPILE90_NOSAVE) -o $(OBJ_DIR)/global_data_m.o \
                                $(CQL3D_SETUP_DIR)/global_data_m.f90 $(INCLUDE_DIRS)

$(OBJ_DIR)/CQL_kinds_m.o:       $(CQL3D_SETUP_DIR)/CQL_kinds_m.f90
                            $(COMPILE90_NOSAVE) -o $(OBJ_DIR)/CQL_kinds_m.o \
                                $(CQL3D_SETUP_DIR)/CQL_kinds_m.f90 $(INCLUDE_DIRS)

$(OBJ_DIR)/vector_write_m.o:    $(CQL3D_SETUP_DIR)/vector_write_m.f90
                            $(COMPILE90_NOSAVE) -o $(OBJ_DIR)/vector_write_m.o \
                                $(CQL3D_SETUP_DIR)/vector_write_m.f90 $(INCLUDE_DIRS)

$(OBJ_DIR)/read_cql3d.o:        $(CQL3D_SETUP_DIR)/read_cql3d.f90
                            $(COMPILE90_4) -o $(OBJ_DIR)/read_cql3d.o \
                                $(CQL3D_SETUP_DIR)/read_cql3d.f90 $(INCLUDE_DIRS) ${WARNING_FLAGS}

$(OBJ_DIR)/ceez.o:              $(CQL3D_SETUP_DIR)/ceez.f
                            $(COMPILE90_NOSAVE) -o $(OBJ_DIR)/ceez.o \
                                $(CQL3D_SETUP_DIR)/ceez.f $(INCLUDE_DIRS)

$(OBJ_DIR)/cubic_B_splines_v.o: $(CQL3D_SETUP_DIR)/cubic_B_splines_v.f90
                            $(COMPILE90_NOSAVE) -o $(OBJ_DIR)/cubic_B_splines_v.o \
                                $(CQL3D_SETUP_DIR)/cubic_B_splines_v.f90 $(INCLUDE_DIRS)        

$(OBJ_DIR)/cql3d_setup.o:       $(CQL3D_SETUP_DIR)/cql3d_setup.f90
                            $(COMPILE90_4) -o $(OBJ_DIR)/cql3d_setup.o \
                                $(CQL3D_SETUP_DIR)/cql3d_setup.f90 $(INCLUDE_DIRS)

.phony: make_directories
make_directories: $(OBJ_DIR)/ $(MOD_DIR)/

$(MOD_DIR)/:
    mkdir -p $@

$(OBJ_DIR)/:
    mkdir -p $@

.phony: clean
clean:
    rm -r $(MOD_DIR)/*.mod $(OBJ_DIR)/*.o $(EXEC)

.phony: cleanrepo
cleanrepo:
    cd test/DIIID-helicon
    ./cleanrun.sh
    cd ../DIIID-whistler
    ./cleanrun.sh
    cd ../../
    cd examples/DIIID-helicon
    ./cleanrun.sh
    cd ../DIIID-whister
    ./cleanrun.sh
    cd ../../


  • 写回答

2条回答 默认 最新

  • 阿里嘎多学长 2024-05-23 17:00
    关注

    以下内容由CHATGPT及阿里嘎多学长共同生成、有用望采纳:


    【您想要解决的问题】: 您希望解决的问题是在CentOS服务器上执行make命令时遇到的编译错误。具体来说,错误提示是make: f77: Command not found,这意味着make无法找到名为f77的编译器命令。

    【图片内容】: 图片显示了在执行make命令时终端的输出内容。其中包含了两条警告信息,指出makefile中存在覆盖旧规则的情况,以及f77命令未找到的错误。

    【问题出现原因】: 问题出现的原因是make在执行时尝试调用f77编译器来编译src/cauchy_mod.fgo文件,但是系统中没有找到名为f77的命令。这通常意味着需要的编译器没有安装在系统上,或者没有在系统的PATH环境变量中。

    【问题解决方案】:

    1. 确认需要的编译器:首先需要确认项目是否确实需要f77编译器,f77通常是Fortran 77编译器的命令。

    2. 安装编译器:如果项目确实需要Fortran编译器,您需要在CentOS服务器上安装相应的编译器。可以使用如下命令安装gfortran(GNU Fortran编译器):

      sudo yum install gcc-gfortran
      
    3. 修改Makefile:如果f77不是必需的,或者您希望使用不同的编译器,您可以修改Makefile中的相关规则,将f77替换为实际可用的编译器命令,例如gfortran

    4. 设置环境变量:确保编译器的安装路径被添加到系统的PATH环境变量中,这样make命令才能找到并执行它。

    【提供代码】: 如果需要修改Makefile以使用gfortran代替f77,您可以找到类似于下面的行:

    f77 -C -c src/cauchy_mod.fgo -o obj/cauchy_mod.o
    

    将其替换为:

    gfortran -C -c src/cauchy_mod.fgo -o obj/cauchy_mod.o
    

    注意:具体的编译器选项和参数可能需要根据实际情况调整。

    【代码运行方式】: 在终端中,进入到Makefile所在的目录,然后运行:

    make
    

    这将执行Makefile中的指令,开始编译过程。

    【代码预期运行结果】: 如果修改正确,并且编译器已正确安装,make命令应该能够成功执行,编译项目中的源代码文件,并生成可执行文件或所需的对象文件。

    【推荐相关链接】:

    评论 编辑记录

报告相同问题?

问题事件

  • 创建了问题 5月23日

悬赏问题

  • ¥15 关于#单片机#的问题:以ATMEGA128或相近型号单片机为控制器设计直流电机调速的闭环控制系统(相关搜索:设计报告|软件设计|流程图)
  • ¥15 打开软件提示错误:failed to get wglChoosePixelFormatARB
  • ¥15 (标签-python|关键词-char)
  • ¥15 python+selenium,在新增时弹出了一个输入框
  • ¥15 苹果验机结果的api接口哪里有??单次调用1毛钱及以下。
  • ¥20 学生成绩管理系统设计
  • ¥15 来一个cc穿盾脚本开发者
  • ¥15 CST2023安装报错
  • ¥15 使用diffusionbert生成文字 结果是PAD和UNK怎么办
  • ¥15 有人懂怎么做大模型的客服系统吗?卡住了卡住了