首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在库中使用gfortran

在库中使用gfortran
EN

Stack Overflow用户
提问于 2012-03-28 00:54:37
回答 2查看 1.8K关注 0票数 1

我有一个用fortran 77编写的遗留代码。我正在尝试用gfortran构建它。但我似乎在将库包含在构建中的阶段失败了。几十个*.f源文件编译得很好,但是当它们被链接时,我得到一堆“未定义的引用”错误,所有这些错误都与我的库中定义的子例程和函数有关。我已经首先运行了库的makefile,所以我需要的变量都应该被导出。我正在使用"-L“选项,但无法让它按预期工作。

首先,下面是我的makefile中链接行的语法:

代码语言:javascript
复制
 29 $(PROGRAM): $(SRCS) $(LIBS)
 30         $(FC) $(FLFLAGS) -o $@ $+ -L$(DIRLIB) 

PROGRAM是程序名,SRCS是所有编译的源文件,LIBS被设置为两个不同的文件-一个归档文件(file.a)和一个file.o文件。FC是gfortran,到目前为止,我还没有任何用于FLFLAGS的特定链接标志,而DIRLIB是库的主目录。问题是,构建我的库产生的*.o文件并不只驻留在主目录DIRLIB中。DIRLIB包含几个目录,每个目录都有我的代码所需的自己的*.o文件。

我尝试在-L选项后面添加每个单独的目录(例如,DIRLIB/DIR1/*.o DIRLIB/DIR2/*.o DIRLIB/DIR3/*.o),但最终开始收到一些子例程被多重定义的错误。所有这些用户定义库和归档文件的事情都让我感到困惑,而且我在制作makefile方面还是个新手,所以我在这里只是碰碰运气,希望有人能帮助我阐明这一点。

EN

Stack Overflow用户

发布于 2012-03-28 21:31:13

在链接命令中,库需要位于引用它们的.o文件之后。

我猜LIBS中的对象文件在库之后,但需要库中的一些过程。您可以显示实际运行的命令(所有变量都展开了)来确认这一点吗?

票数 0
EN
查看全部 2 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9894116

复制
相关文章

相似问题

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