我正在为Fortran准备我的第一个makefile:
到目前为止,我的代码被分为三个对象模块。
这是我的makefile
# Variables
OBJS=datastructures.o global.o main.o
FC=/usr/local/bin/gfortran8
FFLAGS=-Wl,-rpath=/usr/local/lib/gcc8
# Makefile
test1: $(OBJS)
$(FC) -o mktpro_a $(FFLAGS) $(OBJS)
%.o: %.f90
$(FC) -c $(FFLAGS) $<
clean:
rm $(OBJS)
rm test1但我得到了以下错误:
$ make test1
make: don't know how to make datastructures.o. Stop
make: stopped in /usr/home/user/marketprofile我使用的是FreeBSD12和gcc8 (gfortran8)
发布于 2019-09-07 22:41:24
如果它有助于其他人,这似乎是在FreeBSD 12 make (这似乎是PMake)中实现这一功能的方法。
.SUFFIXES : .o .f90
.f90.o :
$(FC) $(FFLAGS) -c $(.IMPSRC)更多信息在这里:ftp.netbsd.org/pub/NetBSD/misc/lite2-docs/psd/12.make.ps.gz
发布于 2019-09-07 22:10:46
而不是
%.o: %.f90
$(FC) -c $(FFLAGS) $<将其更改为
.f90.o:
$(FC) -c $(FFLAGS) $<您可能也需要一个显式输出(我不熟悉这个编译器):
.f90.o:
$(FC) -c $(FFLAGS) -o $@ $<https://stackoverflow.com/questions/57837718
复制相似问题