NMAKE 静态链接错误

Posted

技术标签:

【中文标题】NMAKE 静态链接错误【英文标题】:NMAKE static link errors 【发布时间】:2018-06-25 12:33:40 【问题描述】:

我正在尝试构建 Qt 的静态版本,但我目前遇到了 NMAKE 的问题(我认为)。

部分构建过程here 声明我应该运行以下命令:

configure -debug -nomake examples -nomake tests -skip qtwebengine -opensource

当我运行命令时,我得到以下错误

LINK : fatal error LNK1104: cannot open file 'libucrt.lib'
NMAKE : fatal error U1077: '"C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\BIN\link.EXE"' : return code '0x450'
Stop.

在此之前,我有一个关于缺少 corecrt.h 的错误,因此我将以下内容添加到 make 文件中以解决该错误。

set CL=/I"C:\Program Files (x86)\Windows Kits\10\Include\10.0.10240.0\ucrt"

我知道我需要的文件位于:

C:\Program Files (x86)\Windows Kits\10\Lib\10.0.10240.0\ucrt

但我不确定如何让 link.exe 知道它们。

提前致谢

【问题讨论】:

您的命令行构建环境设置不正确。从一个干净的 cmd(win-r、cmd、enter)开始,显示从打开提示符到构建的所有步骤,假设 cd 是一个空的构建文件夹。 【参考方案1】:

原来我遇到了前缀设置不正确的问题,所以回到第一个命令,它被修改为以下内容:

configure -debug -nomake examples -nomake tests -skip qtwebengine -opensource -static -prefix C:\QT\qt-everywhere-src-5.10.1 -redo -recheck-all

-prefix 之后的参数是构建位置(在我的情况下,这与源目录相同)

感谢您的帮助

【讨论】:

以上是关于NMAKE 静态链接错误的主要内容,如果未能解决你的问题,请参考以下文章

无法在 Windows 上运行 nmake,链接在正文中给出

为什么在构建静态版本的QT时出现NMAKE错误?

链接器错误构建GDAL VS2017

使用 OpenSSL 构建 LibCurl 会导致链接器错误

使用nmake构建静态版qt

使用静态成员时的链接器错误