【问题标题】:Can't compile Qt with Microsoft compiler无法使用 Microsoft 编译器编译 Qt
【发布时间】:2018-05-28 00:38:00
【问题描述】:

我想用 VS2010 编译器构建 Qt (4.7.3),但在配置时遇到了问题。

我正在使用 VS-command-shell。 我的配置命令如下所示:

configure.exe -platform win32-msvc2010 -no-webkit -no-phonon -no-phonon-backend -no-script -no-scripttools -no-multimedia -no-qt3support

这会在开始配置后一秒钟发生。出了什么问题?

C:\qt-everywhere-opensource-src-4.7.3\qmake\qbitarray.obj couldn't be found
werden
        del project.obj main.obj makefile.obj unixmake.obj unixmake2.obj mingw_m
ake.obj  option.obj winmakefile.obj projectgenerator.obj property.obj meta.obj
makefiledeps.obj metamakefile.obj xmloutput.obj pbuilder_pbx.obj  borland_bmake.
obj msvc_nmake.obj msvc_vcproj.obj msvc_vcxproj.obj  msvc_objectmodel.obj msbuil
d_objectmodel.obj symmake.obj initprojectdeploy_symbian.obj  symmake_abld.obj sy
mmake_sbsv2.obj symbiancommon.obj registry.obj epocroot.obj
C:\qt-everywhere-opensource-src-4.7.3\qmake\project.obj couldn't be found 
        del qmake_pch.obj
C:\qt-everywhere-opensource-src-4.7.3\qmake\qmake_pch.obj couldn't be found
        del qmake_pch.pch
C:\qt-everywhere-opensource-src-4.7.3\qmake\qmake_pch.pch couldn't be found
        del qsystemlibrary.obj
C:\qt-everywhere-opensource-src-4.7.3\qmake\qsystemlibrary.obj couldn't be found
        del vc60.pdb
C:\qt-everywhere-opensource-src-4.7.3\qmake\vc60.pdb couldn't be found
        del vc70.pdb
C:\qt-everywhere-opensource-src-4.7.3\qmake\vc70.pdb couldn't be found
        del qmake.pdb
C:\qt-everywhere-opensource-src-4.7.3\qmake\qmake.pdb couldn't be found
        del qmake.ilk
C:\qt-everywhere-opensource-src-4.7.3\qmake\qmake.ilk couldn't be found
        del qmake.tds
C:\qt-everywhere-opensource-src-4.7.3\qmake\qmake.tds couldn't be found

Microsoft (R) Program Maintenance Utility, Version 10.00.30319.01
Copyright (C) Microsoft Corporation. Alle Rechte vorbehalten.

        cl -c -Fo./  -W3 -nologo -O2  /MP  -I. -Igenerators -Igenerators\unix -I
generators\win32 -Igenerators\mac -Igenerators\symbian  -IC:\qt-everywhere-opens
ource-src-4.7.3\include -IC:\qt-everywhere-opensource-src-4.7.3\include\QtCore
-IC:\qt-everywhere-opensource-src-4.7.3\include -IC:\qt-everywhere-opensource-sr
c-4.7.3\include\QtCore  -IC:\qt-everywhere-opensource-src-4.7.3\src\corelib\glob
al  -IC:\qt-everywhere-opensource-src-4.7.3\src\corelib\xml  -IC:\qt-everywhere-
opensource-src-4.7.3\mkspecs\win32-msvc2008   -IC:\qt-everywhere-opensource-src-
4.7.3\tools\shared  -DQT_NO_TEXTCODEC -DQT_NO_UNICODETABLES -DQT_LITE_COMPONENT
-DQT_NODLL -DQT_NO_STL  -DQT_NO_COMPRESS -DUNICODE -DHAVE_QCONFIG_CPP -DQT_BUILD
_QMAKE -DQT_NO_THREAD  -DQT_NO_QOBJECT -DQT_NO_GEOM_VARIANT -DQT_NO_DATASTREAM -
DQT_NO_PCRE -DQT_BOOTSTRAPPED  -DQLIBRARYINFO_EPOCROOT -c -Yc -Fpqmake_pch.pch -
TP qmake_pch.h
qmake_pch.h
c:\qt-everywhere-opensource-src-4.7.3\include\qtcore\../../src/corelib/global/qg
lobal.h(45) : fatal error C1083: File (Include) couldn't be opened: "st
ddef.h": No such file or directory
NMAKE : fatal error U1077: ""C:\Program Files (x86)\Microsoft Visual Studio 10.0
\VC\BIN\cl.EXE"": return code "0x2"
Stop.
Building qmake failed, return code 2

【问题讨论】:

  • 你先运行qtvars.bat了吗?
  • 为什么不使用 Qt Creator?这是一个非常好的和方便的工具!
  • stddef.h 是一个标准的包含文件,通常存储在 vc/include 子目录中。您的 INCLUDE 环境变量设置不正确。

标签: c++ qt qt4 visual-studio-2010


【解决方案1】:

默认情况下,Microsoft Visual Studio 不会在安装时将 #include 搜索路径和/或库链接路径放入全局环境中,而是将其留给 IDE 进行设置,或者用户在使用时明确这样做命令行编译器。

对于后一种用途,Microsoft 提供了一个批处理文件,请参阅 Visual Studio 文档中的Setting the Path and Environment Variables for Command-Line Builds

您需要运行configure.exe 之前提到的VCVARS32.BAT 脚本。

【讨论】:

  • 当您在命令提示符下运行简单的SET / ENV 时,您是否看到指向 VC++ 包含文件位置的环境变量?
  • 除此之外,源代码似乎有缺陷 - "stddef.h" vs. <stddef.h>;修改那个特定的源文件...
  • Qt 邮件列表有一些关于这种行为的注释,其中一个是comments.gmane.org/gmane.comp.lib.qt.general/34591。 “运行脚本”是“运行正确之一 - 或通过开始菜单项打开 Visual Studio 命令提示符......”。
  • 在 4.7.1 中有 #include 在 qglobal 的第 45 行。这是一些路径问题...
  • +1:你应该从开始菜单打开命令提示符,为你设置好一切。
【解决方案2】:

这太愚蠢了,我必须自己回答。

原因是我没有安装 C++ 编译器。

我一直以为我会,但直到现在才使用VS2010进行C#开发。

不要降低 b/c 我浪费了一些人的时间!你上一次在编码过程中发生这种愚蠢的事情是什么时候?

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-11-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-04-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多