简体   繁体   English

编译时未解析的外部符号“for_realloc_lhs”

[英]Unresolved external symbol “for_realloc_lhs” at compilation

I am trying to compile a SDK with pre-built Fortran libraries.我正在尝试使用预构建的 Fortran 库编译 SDK。 The SDK requires Intel Fortran redistributables libraries parallel studio XE 2017. When trying to compile the SDK's example files, i get multiple errors: LNK2001 "unresolved external symol _for_realloc_lhs" SDK 需要 Intel Fortran Redistributables 库 parallel studio XE 2017。尝试编译 SDK 的示例文件时,出现多个错误: LNK2001“未解析的外部符号 _for_realloc_lhs”

From what i read, this could be caused by the SDK's fortran library being compiled with a version of the Intel's fortran compiler that is too old.从我读到的内容来看,这可能是由于 SDK 的 fortran 库使用过旧的 Intel fortran 编译器版本进行编译造成的。 ( see here ), however i do not own the SDK's fortran sources thus, i could not recompile them. 请参阅此处),但是我不拥有 SDK 的 fortran 源,因此我无法重新编译它们。

I would like to know if i am missing someting here or if the SDK's fortran library was imply built with the wrong tools.我想知道我是否在这里遗漏了某些东西,或者 SDK 的 fortran 库是否暗示使用错误的工具构建。

[EDIT] i read what you said (thanks for your very clear explanation) and it seems my problem is really close to what you just explained, i seem to link against the 11.1 version of Intel redistributables. [编辑] 我读了你所说的(感谢你非常清楚的解释),看来我的问题与你刚刚解释的很接近,我似乎链接到 11.1 版的英特尔可再发行组件。 However, it seems that the library i got on Intel's website does not feature all the files the linker is looking for.但是,我在英特尔网站上获得的库似乎没有包含链接器正在寻找的所有文件。 (or at least i could not find them). (或者至少我找不到它们)。 There is the command visual studio used.有使用的命令visual studio。 Unfortunately, i am unable at the moment to produce the log, as it exceeds maximum message size.不幸的是,我目前无法生成日志,因为它超过了最大消息大小。

Here is a summarized version of the log这是日志的摘要版本

1>------ Build started: Project: Tutorials, Configuration: Debug Win32 ------
1>
1>  Searching libraries
1>      Searching ..\..\lib\CK_IO.lib:
1>      Searching C:\Program Files (x86)\Windows Kits\8.1\lib\winv6.3\um\x86\kernel32.lib:
1>      Searching C:\Program Files (x86)\Windows Kits\8.1\lib\winv6.3\um\x86\user32.lib:
1>      Searching C:\Program Files (x86)\Windows Kits\8.1\lib\winv6.3\um\x86\gdi32.lib:
1>      Searching C:\Program Files (x86)\Windows Kits\8.1\lib\winv6.3\um\x86\winspool.lib:
1>      Searching C:\Program Files (x86)\Windows Kits\8.1\lib\winv6.3\um\x86\comdlg32.lib:
1>      Searching C:\Program Files (x86)\Windows Kits\8.1\lib\winv6.3\um\x86\advapi32.lib:
1>      Searching C:\Program Files (x86)\Windows Kits\8.1\lib\winv6.3\um\x86\shell32.lib:
1>      Searching C:\Program Files (x86)\Windows Kits\8.1\lib\winv6.3\um\x86\ole32.lib:
1>      Searching C:\Program Files (x86)\Windows Kits\8.1\lib\winv6.3\um\x86\oleaut32.lib:
1>      Searching C:\Program Files (x86)\Windows Kits\8.1\lib\winv6.3\um\x86\uuid.lib:
1>      Searching C:\Program Files (x86)\Windows Kits\8.1\lib\winv6.3\um\x86\odbc32.lib:
1>      Searching C:\Program Files (x86)\Windows Kits\8.1\lib\winv6.3\um\x86\odbccp32.lib:
1>      Searching C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\lib\legacy_stdio_definitions.lib:
1>      Searching C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\lib\LIBCMT.lib:
1>      Searching C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\lib\OLDNAMES.lib:
1>      Searching C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\lib\libvcruntime.lib:
1>      Searching C:\Program Files (x86)\Windows Kits\10\lib\10.0.10150.0\ucrt\x86\libucrt.lib:
1>      Searching ..\..\lib\CK_IO.lib:
1>      Searching C:\Program Files (x86)\Windows Kits\8.1\lib\winv6.3\um\x86\kernel32.lib:
1>      Searching C:\Program Files (x86)\Windows Kits\8.1\lib\winv6.3\um\x86\user32.lib:
1>      Searching C:\Program Files (x86)\Windows Kits\8.1\lib\winv6.3\um\x86\gdi32.lib:
1>      Searching C:\Program Files (x86)\Windows Kits\8.1\lib\winv6.3\um\x86\winspool.lib:
1>      Searching C:\Program Files (x86)\Windows Kits\8.1\lib\winv6.3\um\x86\comdlg32.lib:
1>      Searching C:\Program Files (x86)\Windows Kits\8.1\lib\winv6.3\um\x86\advapi32.lib:
1>      Searching C:\Program Files (x86)\Windows Kits\8.1\lib\winv6.3\um\x86\shell32.lib:
1>      Searching C:\Program Files (x86)\Windows Kits\8.1\lib\winv6.3\um\x86\ole32.lib:
1>      Searching C:\Program Files (x86)\Windows Kits\8.1\lib\winv6.3\um\x86\oleaut32.lib:
1>      Searching C:\Program Files (x86)\Windows Kits\8.1\lib\winv6.3\um\x86\uuid.lib:
1>      Searching C:\Program Files (x86)\Windows Kits\8.1\lib\winv6.3\um\x86\odbc32.lib:
1>      Searching C:\Program Files (x86)\Windows Kits\8.1\lib\winv6.3\um\x86\odbccp32.lib:
1>      Searching C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\lib\legacy_stdio_definitions.lib:
1>      Searching C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\lib\LIBCMT.lib:
1>      Searching C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\lib\OLDNAMES.lib:
1>      Searching C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\lib\libvcruntime.lib:
1>      Searching C:\Program Files (x86)\Windows Kits\10\lib\10.0.10150.0\ucrt\x86\libucrt.lib:
1>      Searching C:\Program Files (x86)\Common Files\Intel\Shared Files\fortran\Lib\ia32\ifconsol.lib:
1>      Searching C:\Program Files (x86)\Common Files\Intel\Shared Files\fortran\Lib\ia32\libifcoremt.lib:
1>      Searching C:\Program Files (x86)\Common Files\Intel\Shared Files\fortran\Lib\ia32\libmmt.lib:
1>      Searching C:\Program Files (x86)\Common Files\Intel\Shared Files\fortran\Lib\ia32\libirc.lib:
1>      Searching C:\Program Files (x86)\Common Files\Intel\Shared Files\fortran\Lib\ia32\svml_dispmt.lib:
1>      Searching C:\Program Files (x86)\Windows Kits\8.1\lib\winv6.3\um\x86\ImageHlp.lib:
1>      Searching ..\..\lib\CK_IO.lib:
1>      Searching C:\Program Files (x86)\Windows Kits\8.1\lib\winv6.3\um\x86\kernel32.lib:
1>      Searching C:\Program Files (x86)\Windows Kits\8.1\lib\winv6.3\um\x86\user32.lib:
1>      Searching C:\Program Files (x86)\Windows Kits\8.1\lib\winv6.3\um\x86\gdi32.lib:
1>      Searching C:\Program Files (x86)\Windows Kits\8.1\lib\winv6.3\um\x86\winspool.lib:
1>      Searching C:\Program Files (x86)\Windows Kits\8.1\lib\winv6.3\um\x86\comdlg32.lib:
1>      Searching C:\Program Files (x86)\Windows Kits\8.1\lib\winv6.3\um\x86\advapi32.lib:
1>      Searching C:\Program Files (x86)\Windows Kits\8.1\lib\winv6.3\um\x86\shell32.lib:
1>      Searching C:\Program Files (x86)\Windows Kits\8.1\lib\winv6.3\um\x86\ole32.lib:
1>      Searching C:\Program Files (x86)\Windows Kits\8.1\lib\winv6.3\um\x86\oleaut32.lib:
1>      Searching C:\Program Files (x86)\Windows Kits\8.1\lib\winv6.3\um\x86\uuid.lib:
1>      Searching C:\Program Files (x86)\Windows Kits\8.1\lib\winv6.3\um\x86\odbc32.lib:
1>      Searching C:\Program Files (x86)\Windows Kits\8.1\lib\winv6.3\um\x86\odbccp32.lib:
1>      Searching C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\lib\legacy_stdio_definitions.lib:
1>      Searching C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\lib\LIBCMT.lib:
1>      Searching C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\lib\OLDNAMES.lib:
1>      Searching C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\lib\libvcruntime.lib:
1>      Searching C:\Program Files (x86)\Windows Kits\10\lib\10.0.10150.0\ucrt\x86\libucrt.lib:
1>      Searching C:\Program Files (x86)\Common Files\Intel\Shared Files\fortran\Lib\ia32\ifconsol.lib:
1>      Searching C:\Program Files (x86)\Common Files\Intel\Shared Files\fortran\Lib\ia32\libifcoremt.lib:
1>      Searching C:\Program Files (x86)\Common Files\Intel\Shared Files\fortran\Lib\ia32\libmmt.lib:
1>      Searching C:\Program Files (x86)\Common Files\Intel\Shared Files\fortran\Lib\ia32\libirc.lib:
1>      Searching C:\Program Files (x86)\Common Files\Intel\Shared Files\fortran\Lib\ia32\svml_dispmt.lib:
1>      Searching C:\Program Files (x86)\Windows Kits\8.1\lib\winv6.3\um\x86\ImageHlp.lib:
1>      Searching C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\lib\legacy_stdio_wide_specifiers.lib:
1>      Searching ..\..\lib\CK_IO.lib:
1>      Searching C:\Program Files (x86)\Windows Kits\8.1\lib\winv6.3\um\x86\kernel32.lib:
1>      Searching C:\Program Files (x86)\Windows Kits\8.1\lib\winv6.3\um\x86\user32.lib:
1>      Searching C:\Program Files (x86)\Windows Kits\8.1\lib\winv6.3\um\x86\gdi32.lib:
1>      Searching C:\Program Files (x86)\Windows Kits\8.1\lib\winv6.3\um\x86\winspool.lib:
1>      Searching C:\Program Files (x86)\Windows Kits\8.1\lib\winv6.3\um\x86\comdlg32.lib:
1>      Searching C:\Program Files (x86)\Windows Kits\8.1\lib\winv6.3\um\x86\advapi32.lib:
1>      Searching C:\Program Files (x86)\Windows Kits\8.1\lib\winv6.3\um\x86\shell32.lib:
1>      Searching C:\Program Files (x86)\Windows Kits\8.1\lib\winv6.3\um\x86\ole32.lib:
1>      Searching C:\Program Files (x86)\Windows Kits\8.1\lib\winv6.3\um\x86\oleaut32.lib:
1>      Searching C:\Program Files (x86)\Windows Kits\8.1\lib\winv6.3\um\x86\uuid.lib:
1>      Searching C:\Program Files (x86)\Windows Kits\8.1\lib\winv6.3\um\x86\odbc32.lib:
1>      Searching C:\Program Files (x86)\Windows Kits\8.1\lib\winv6.3\um\x86\odbccp32.lib:
1>      Searching C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\lib\legacy_stdio_definitions.lib:
1>      Searching C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\lib\LIBCMT.lib:
1>      Searching C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\lib\OLDNAMES.lib:
1>      Searching C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\lib\libvcruntime.lib:
1>
1>  Finished searching libraries
1>
1>  Searching libraries
1>      Searching ..\..\lib\CK_IO.lib:
1>      Searching C:\Program Files (x86)\Windows Kits\8.1\lib\winv6.3\um\x86\kernel32.lib:
1>      Searching C:\Program Files (x86)\Windows Kits\8.1\lib\winv6.3\um\x86\user32.lib:
1>      Searching C:\Program Files (x86)\Windows Kits\8.1\lib\winv6.3\um\x86\gdi32.lib:
1>      Searching C:\Program Files (x86)\Windows Kits\8.1\lib\winv6.3\um\x86\winspool.lib:
1>      Searching C:\Program Files (x86)\Windows Kits\8.1\lib\winv6.3\um\x86\comdlg32.lib:
1>      Searching C:\Program Files (x86)\Windows Kits\8.1\lib\winv6.3\um\x86\advapi32.lib:
1>      Searching C:\Program Files (x86)\Windows Kits\8.1\lib\winv6.3\um\x86\shell32.lib:
1>      Searching C:\Program Files (x86)\Windows Kits\8.1\lib\winv6.3\um\x86\ole32.lib:
1>      Searching C:\Program Files (x86)\Windows Kits\8.1\lib\winv6.3\um\x86\oleaut32.lib:
1>      Searching C:\Program Files (x86)\Windows Kits\8.1\lib\winv6.3\um\x86\uuid.lib:
1>      Searching C:\Program Files (x86)\Windows Kits\8.1\lib\winv6.3\um\x86\odbc32.lib:
1>      Searching C:\Program Files (x86)\Windows Kits\8.1\lib\winv6.3\um\x86\odbccp32.lib:
1>      Searching C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\lib\legacy_stdio_definitions.lib:
1>      Searching C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\lib\LIBCMT.lib:
1>      Searching C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\lib\OLDNAMES.lib:
1>      Searching C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\lib\libvcruntime.lib:
1>      Searching C:\Program Files (x86)\Windows Kits\10\lib\10.0.10150.0\ucrt\x86\libucrt.lib:
1>      Searching C:\Program Files (x86)\Common Files\Intel\Shared Files\fortran\Lib\ia32\ifconsol.lib:
1>      Searching C:\Program Files (x86)\Common Files\Intel\Shared Files\fortran\Lib\ia32\libifcoremt.lib:
1>      Searching C:\Program Files (x86)\Common Files\Intel\Shared Files\fortran\Lib\ia32\libmmt.lib:
1>      Searching C:\Program Files (x86)\Common Files\Intel\Shared Files\fortran\Lib\ia32\libirc.lib:
1>      Searching C:\Program Files (x86)\Common Files\Intel\Shared Files\fortran\Lib\ia32\svml_dispmt.lib:
1>      Searching C:\Program Files (x86)\Windows Kits\8.1\lib\winv6.3\um\x86\ImageHlp.lib:
1>      Searching C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\lib\legacy_stdio_wide_specifiers.lib:
1>
1>  Finished searching libraries
========== Build: 0 succeeded, 1 failed, 1 up-to-date, 0 skipped ==========

I would also like to mention that the directory in which the redistributables are supposed to be installed (as mentioned here : "redist[ia32|intel64]\\mpirt (for Fortran packages)") there is no library named libifcore... Actually, there is almost nothing that looks like anything that i need to link.) an image of the mentionned folder我也想提一提,安装在其可再分发应该的目录(如提到这里:“REDIST [IA32 | Intel64位] \\ mpirt(Fortran的包)”)没有libifcore库命名...其实,几乎没有任何东西看起来像我需要链接的东西。)提到的文件夹的图像

First, a nit.首先,尼特。 The error is coming from the link step, not compiling.错误来自链接步骤,而不是编译。 Contrary to your guess about the compiler version used for the library being "too old", instead it's the set of Intel libraries (redistributables) you're linking against that are too old (or missing?) If you are truly linking against the 2017-version libraries, that routine should be in libifcore.与您对用于库的编译器版本“太旧”的猜测相反,相反,它是您链接的一组英特尔库(可再发行组件)太旧(或丢失?)如果您真正链接的是 2017 -version 库,该例程应该在 libifcore 中。 Double and triple check how you are doing the link and which libraries you name, if any, in the link step.在链接步骤中,仔细检查您的链接方式以及您命名的库(如果有)。

An easy way to see what's going on is to add the linker option /verbose to the link step.查看发生了什么的一种简单方法是将链接器选项 /verbose 添加到链接步骤。 You haven't shown how you build the application and which command is used for linking.您尚未展示如何构建应用程序以及使用哪个命令进行链接。 If you're using Visual Studio, set the project property Linker > General > Show Progress to "Display all progress messages".如果您使用的是 Visual Studio,请将项目属性Linker > General > Show Progress为“显示所有进度消息”。 If using the ifort command, add at the end /link /verbose If using some other command, look at its documentation to see how you should specify link options.如果使用 ifort 命令,请在末尾添加/link /verbose如果使用其他命令,请查看其文档以了解应如何指定链接选项。 Capture the linker output (build log or whatever) - it will name each library it searches and which symbols come from where.捕获链接器输出(构建日志或其他) - 它将命名它搜索的每个库以及哪些符号来自何处。

It may be as simple a matter as making sure you name the Intel libraries after the SDK libraries in the link step.这可能就像确保在链接步骤中以 SDK 库命名英特尔库一样简单。

If this doesn't help, edit your question to add the commands you're using to link (compile doesn't matter) and show the actual output (do not summarize).如果这没有帮助,请编辑您的问题以添加您用于链接的命令(编译无关紧要)并显示实际输出(不要总结)。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM