对“_gfortran_transfer_character_write”的未定义引用

Posted

技术标签:

【中文标题】对“_gfortran_transfer_character_write”的未定义引用【英文标题】:undefined reference to `_gfortran_transfer_character_write' 【发布时间】:2020-05-10 03:37:30 【问题描述】:

===================================== 以下命令行用于“hello world”

program 

/usr/bin/gfortran -std=f95 -Wextra -Wall -O2 -c main.for 

===================================== 产生以下错误。

cc -std=f95 -Wextra -Wall -O2  main.o -o main
/usr/lib64/gcc/x86_64-suse-linux/7/../../../../x86_64-suse-linux/bin/ld: main.o: in function `MAIN__':
main.for:(.text+0x2a): undefined reference to `_gfortran_st_write'
/usr/lib64/gcc/x86_64-suse-linux/7/../../../../x86_64-suse-linux/bin/ld: main.for:(.text+0x3c): undefined reference to `_gfortran_transfer_character_write'
/usr/lib64/gcc/x86_64-suse-linux/7/../../../../x86_64-suse-linux/bin/ld: main.for:(.text+0x44): undefined reference to `_gfortran_st_write_done'
/usr/lib64/gcc/x86_64-suse-linux/7/../../
/usr/lib64/gcc/x86_64-suse-linux/7/../../../../x86_64-suse-linux/bin/ld: main.for:(.text.startup+0x14): undefined reference to `_gfortran_set_options'
collect2: error: ld returned 1 exit status../../x86_64-suse-linux/bin/ld: main.o: in function `main':
main.for:(.text.startup+0x5): undefined reference to `_gfortran_set_args'
/usr/lib64/gcc/x86_64-suse-linux/7/../../../../x86_64-suse-linux/bin/ld: main.for:(.text.startup+0x14): undefined reference to `_gfortran_set_options'
collect2: error: ld returned 1 exit status
make: *** [makefile:44: main] Error 1

【问题讨论】:

Hello world 的例子似乎不见了... 【参考方案1】:

windows+cygwin 和 linux 都会出现这个错误。

在这两种情况下都安装了两个版本的 gfortran,默认 V7 和用户配置的 V8。

使用 >gfortran --version 检查安装,在两种情况下(windows+cygwin 和 linux)都有效,没有错误。

========================== 我的解决方案 是首先根除所有版本的 gfortran,然后重新安装默认版本。 我仍在研究如何安装用户配置的版本。

【讨论】:

以上是关于对“_gfortran_transfer_character_write”的未定义引用的主要内容,如果未能解决你的问题,请参考以下文章

如何对List 进行排序

根据对的第二个值查找对向量的上限

算法之逆序对

10:素数对

向量对还是向量对?

逆序对与本质不同的逆序对