我有主程序Engine.f
,它在LIB.f
中调用函数/外部。与C++和Java不同,主程序中没有包含,因此可以编译。
我的Fortran喜剧演员怎么知道还有一个我使用的图书馆呢?
我用的是Eclipse的照片。
制作文件:
.PHONY: all clean
# Change this line if you are using a different Fortran compiler
FORTRAN_COMPILER = gfortran
all: src/Engine.f
$(FORTRAN_COMPILER) -O2 -g \
-o bin/Engine.exe \
src/Engine.f
clean:
rm -f bin/Engine.exe *.mod
编译时遇到的错误:
undefined reference to (name of function in **LIB.f**)
发布于 2018-09-26 13:49:53
.PHONY: all clean
all: Engine.exe
# Change this line if you are using a different Fortran compiler
FORTRAN_COMPILER = gfortran
FORTRAN_FLAGS=-O2 -g
%.o: src/%.f
$(FORTRAN_COMPILER) $(FORTRAN_FLAGS) -c $<
Engine.exe: Lib.o Engine.o
$(FORTRAN_COMPILER) $(FORTRAN_FLAGS) \
-o bin/Engine.exe \
Lib.o Engine.o
clean:
rm -f *.o *.mod
在FORTRAN 77中,编译器"just“需要在链接时在.o
文件中提供函数。您可以在下面测试Makefile,它应该可以做您想做的事情。
现代版本的Fortran使用模块文件来构造库,如果您曾经升级到这个库的话。
https://stackoverflow.com/questions/52515523
复制相似问题