繁体   English   中英

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

[英]Unresolved external symbol “for_realloc_lhs” at compilation

我正在尝试使用预构建的 Fortran 库编译 SDK。 SDK 需要 Intel Fortran Redistributables 库 parallel studio XE 2017。尝试编译 SDK 的示例文件时,出现多个错误: LNK2001“未解析的外部符号 _for_realloc_lhs”

从我读到的内容来看,这可能是由于 SDK 的 fortran 库使用过旧的 Intel fortran 编译器版本进行编译造成的。 请参阅此处),但是我不拥有 SDK 的 fortran 源,因此我无法重新编译它们。

我想知道我是否在这里遗漏了某些东西,或者 SDK 的 fortran 库是否暗示使用错误的工具构建。

[编辑] 我读了你所说的(感谢你非常清楚的解释),看来我的问题与你刚刚解释的很接近,我似乎链接到 11.1 版的英特尔可再发行组件。 但是,我在英特尔网站上获得的库似乎没有包含链接器正在寻找的所有文件。 (或者至少我找不到它们)。 有使用的命令visual studio。 不幸的是,我目前无法生成日志,因为它超过了最大消息大小。

这是日志的摘要版本

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 ==========

我也想提一提,安装在其可再分发应该的目录(如提到这里:“REDIST [IA32 | Intel64位] \\ mpirt(Fortran的包)”)没有libifcore库命名...其实,几乎没有任何东西看起来像我需要链接的东西。)提到的文件夹的图像

首先,尼特。 错误来自链接步骤,而不是编译。 与您对用于库的编译器版本“太旧”的猜测相反,相反,它是您链接的一组英特尔库(可再发行组件)太旧(或丢失?)如果您真正链接的是 2017 -version 库,该例程应该在 libifcore 中。 在链接步骤中,仔细检查您的链接方式以及您命名的库(如果有)。

查看发生了什么的一种简单方法是将链接器选项 /verbose 添加到链接步骤。 您尚未展示如何构建应用程序以及使用哪个命令进行链接。 如果您使用的是 Visual Studio,请将项目属性Linker > General > Show Progress为“显示所有进度消息”。 如果使用 ifort 命令,请在末尾添加/link /verbose如果使用其他命令,请查看其文档以了解应如何指定链接选项。 捕获链接器输出(构建日志或其他) - 它将命名它搜索的每个库以及哪些符号来自何处。

这可能就像确保在链接步骤中以 SDK 库命名英特尔库一样简单。

如果这没有帮助,请编辑您的问题以添加您用于链接的命令(编译无关紧要)并显示实际输出(不要总结)。

暂无
暂无

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

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