【问题标题】:Make error: main.o: Command not found Makefile: recipe for target 'all' failed制作错误:main.o:找不到命令 Makefile:目标“全部”的配方失败
【发布时间】:2017-09-30 15:02:32
【问题描述】:
# Makefile for Defmod

FFLAGS =
FPPFLAGS =
LDLIBS =

-include ${PETSC_DIR}/conf/variables
-include ${PETSC_DIR}/conf/rules
-include ${PETSC_DIR}/lib/petsc/conf/variables
-include ${PETSC_DIR}/lib/petsc/conf/rules

OBJS = main.o m_global.o m_local.o m_elems.o m_utils.o

m_utils.o : m_utils.F90
m_elems.o : m_elems.F90 m_utils.o
m_local.o : m_local.F90 m_elems.o
m_global.o: m_global.F90 m_local.o
main.o    : main.F90 m_global.o

all: ${OBJS}
    -${FLINKER} ${OBJS} -o ../defmod ${PETSC_LIB} ${LDLIBS}

当我输入make all时,它会弹出:

make[1]: Entering directory '/mnt/c/Users/gxyan/defmod-dev/src'
    main.o m_global.o m_local.o m_elems.o m_utils.o -o ../defmod
    make[1]: main.o: Command not found
    Makefile:21: recipe for target 'all' failed
    make[1]: [all] Error 127 (ignored)
    make[1]: Leaving directory '/mnt/c/Users/gxyan/defmod-dev/src'

并且设置了PETSC的所有环境变量。 PETSC 的配置是通过以下命令完成的:

 ./configure --with-cc=gcc --with-fc=gfortran --download-mpich --download-fblaslapack --download-cmake --download-metis --with-debugging=0

那么,怎么了?

【问题讨论】:

  • 欢迎。请务必使用tour。请不要像以前那样使用 javascript.sn-p 功能。它仅适用于 javascript 和 html 示例。使用code 按钮{}
  • FLINKER 是如何定义的?空着会有问题。
  • 只需输入:make all FLINKER=gfortran 即可正常运行。

标签: makefile fortran petsc


【解决方案1】:

使变量FLINKER 未定义,或已定义但具有空字符串值

【讨论】:

    【解决方案2】:

    您需要先设置PETSC_DIR 变量。例如,在 BASH 中:

    export PETSC_DIR=/home/user/petsc
    

    紧随其后

    make all
    

    或者,你可以这样做:

    make all PETSC_DIR=/home/user/petsc
    

    【讨论】:

    • 来自问题:“设置了PETSC的所有环境变量。”。即使变量不正确,这如何解释错误消息?
    猜你喜欢
    • 1970-01-01
    • 2021-03-12
    • 2018-06-06
    • 2022-01-22
    • 1970-01-01
    • 2021-11-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多