Linker 在MacOSX上,我得到了;主可执行文件“的隐式条目/启动”使用:gfortran-o链接器
我的代码是用Fortran 77编写的,我正在使用brew于2020年2月中旬安装的最新gfortran软件包。代码相当广泛。看起来编译器对代码没有问题:Linker 在MacOSX上,我得到了;主可执行文件“的隐式条目/启动”使用:gfortran-o链接器,linker,fortran,gfortran,Linker,Fortran,Gfortran,我的代码是用Fortran 77编写的,我正在使用brew于2020年2月中旬安装的最新gfortran软件包。代码相当广泛。看起来编译器对代码没有问题: gfortran -c main.for gfortran - Sub1.for 等等,;所有这些都工作了,并创建了目标文件main.o、Sub1.o等。 但是,一经链接, gfortran -o main.o Sub1.o Sub2.o ---- MyLib.a (需要自动命名的可执行文件)我收到了错误/退出消息: Undefined
gfortran -c main.for
gfortran - Sub1.for
等等,;所有这些都工作了,并创建了目标文件main.o、Sub1.o等。
但是,一经链接,
gfortran -o main.o Sub1.o Sub2.o ---- MyLib.a
(需要自动命名的可执行文件)我收到了错误/退出消息:
Undefined symbols for architecture x86_64:
"_main", referenced from:
implicit entry/start for main executable
ld: symbol(s) not found for architecture x86_64
我最大的罪过是什么 此略图命令:
gfortran -o main.o Sub1.o Sub2.o ---- MyLib.a
请求gfortran
将对象文件Sub1.o
,Sub2.o
与库…MyLib.a
并输出一个名为main.o
的可执行文件
main.o
是(大概)先前编译的包含
程序的入口点,但您已将其关闭以输出程序
那里因此,连杆机构出现故障。相反,请使用:
gfortran -o prog main.o Sub1.o Sub2.o ---- MyLib.a
如果要链接名为prog
的程序。或者就像你说的那样:
应为自动命名的可执行文件
然后改用:
gfortran main.o Sub1.o Sub2.o ---- MyLib.a
和自动命名的可执行文件be
a.out
欢迎您,请拿起并阅读。您真的需要向我们展示您的代码或其他一些复制问题的短代码。这是非常必要的。另见。此外,您必须显示完整的命令集,并且不显示“etc.”。编译器能正确编译简单的程序吗?@MikeKinghan看起来可能是这样,我会毫不犹豫地给出答案。亲爱的Mike,谢谢。不,我首先尝试了“gfortran-o Prog main.o sub1.o”等,得到了所有错误。没有可执行文件。看起来链接器没有访问内置库的权限。嗨。如果gfortran
找不到所需库,它在出现任何未定义的符号错误之前已经说过了。我会说需要,包括build命令以及他们的逐字输出。@MabarOne该评论中的问题与问题不再相似,但我的回答对发布的问题有效。看起来你问的问题是关于试图解决问题的失败尝试,而不是问题本身。你的问题表达了你真正想解决的具体问题,以a的形式,然后我将删除不相关的答案,有人可能会编写另一个答案。亲爱的Mike,是的。我用“Main”替换了一个块数据语句,并可能遇到另一个问题,其中可能缺少x86_64库。我将编辑并还原。