Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/fortran/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Fortran Cray编译器请求一个标志,然后不';我不认识它_Fortran_Linker Errors_Cray - Fatal编程技术网

Fortran Cray编译器请求一个标志,然后不';我不认识它

Fortran Cray编译器请求一个标志,然后不';我不认识它,fortran,linker-errors,cray,Fortran,Linker Errors,Cray,我正试图用crayftn编译一个代码 我收到一条错误消息 /opt/cray/pe/cce/10.0.1/binutils/x86_64/x86_64-pc-linux-gnu/bin/ld: failed to convert GOTPCREL relocation; relink with --no-relax 所以它想要标志——no relax?好的,我能做到。所以我重新连接了这个标志,然后它告诉我 ftn -O3 --no-relax -dynamic -h pic -h omp -o

我正试图用crayftn编译一个代码

我收到一条错误消息

/opt/cray/pe/cce/10.0.1/binutils/x86_64/x86_64-pc-linux-gnu/bin/ld: failed to convert GOTPCREL relocation; relink with --no-relax
所以它想要标志
——no relax
?好的,我能做到。所以我重新连接了这个标志,然后它告诉我

ftn -O3 --no-relax -dynamic -h pic -h omp -o stream_cray stream_mpi.o mysecond.o
ftn-2115 crayftn: ERROR in command line
  "-no-relax" is an invalid command-line option.
所以它要求“
--no relax
”,但是它不理解它。有人知道解决这个难题的办法吗?还是解决根本问题的另一种方法?

我找到了以下链接:

问题:

您好,对于CLM5.0编译,我收到以下错误消息 英特尔编译器在最终cesm bld..ld:
期间未能转换GOTPCREL重新定位;使用--no relax重新链接

解决方案:

您好,似乎找到了修复编译的解决方案…添加 LDFLAGS中的“-Wl,--no relax”不能解决此问题,但是 FFLAGS中的
“-mcmodel medium”在搜索后修复了此问题
谷歌搜索引擎中的“重新定位”一词出现了
有了这个链接,有助于解决这个问题
"https://software.intel.com/en-us/forums/intel-fortran-compiler-for-linux-and-mac-os-x/topic/268394"

向你问好,Prabhakar

另见:

这看起来像是混合了来自不同系统的编译器和库 混合,32位与64位或iPort和的安装 基于不同glibc或类似内容的mpiFort

我仍然对您的“开发环境”感到好奇:


问:您是否能够成功编译、链接和运行任何 用你的小龙虾做节目?问:什么版本的crayftn?10.0.1? 问:什么 站台?x86_64-pc-linux从何而来?只是好奇


问:你能用你的crayftn成功地编译、链接和运行任何程序吗?问:什么版本的crayftn?10.0.1? 问:什么平台?x86_64-pc-linux从何而来?只是好奇……奇怪的是,它说,
“-no relax”是一个无效的命令行选项,标志中有一个
-
。@JonatanÖström如果我给标志一个
-
,它就会抱怨
no relax
无效。显然,它在报告中删除了前面的
-
。@JonatanÖström:如果OP键入
-mooseturd
,它可能会说
“mooseturd”是无效的命令行选项。真正的问题:Q1:链接器是否理解“不放松”?问题2:如果是这样,那么“---不放松”是否真的传递给了链接器?建议:用
-Wl,--no relax
包装选项,以确保它只传递给链接器。@paulsm4关于
-
,当然;)是的,我同意,链接器在抱怨,而不是编译器,所以看起来cray可能没有将该标志传递给链接器。甚至可以使用
gfortran
gcc
ld
链接程序,因为它似乎是
gnu
链接器。但是如果通过
-Wl,--no release
更有效。我想我应该提到“mcmodel”也不起作用。英特尔和GNU认识到这一点,但克雷不认识。我使用的是10.0.1。不知道x86_64-pc-linux。我在这里已经成功编译了好几次了。我认为问题源于代码中的一个特别大的数组。Thank.FYI,我引用的第二个链接还谈到了与“GOTPCREL重新定位”错误相关的“大型阵列”。问:你解决问题了吗?1) 如果您“多次成功编译”,那么您的环境可能“正常”。2) 您的应用程序有几个元素,因此在CLI选项中存在“差异”。3) 还可以尝试
“-Wl,--no relax”
。4) “大型阵列”听起来最有希望,