首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用Makefile用外部库编译Fortran 77

使用Makefile用外部库编译Fortran 77
EN

Stack Overflow用户
提问于 2018-09-26 10:24:54
回答 1查看 483关注 0票数 0

我有主程序Engine.f,它在LIB.f中调用函数/外部。与C++和Java不同,主程序中没有包含,因此可以编译。

我的Fortran喜剧演员怎么知道还有一个我使用的图书馆呢?

我用的是Eclipse的照片。

制作文件:

代码语言:javascript
运行
复制
.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

编译时遇到的错误:

代码语言:javascript
运行
复制
undefined reference to (name of function in **LIB.f**)
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-09-26 13:49:53

代码语言:javascript
运行
复制
.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使用模块文件来构造库,如果您曾经升级到这个库的话。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52515523

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档