【问题标题】:QMAKE: QMAKESPEC has not been setQMAKE:尚未设置 QMAKESPEC
【发布时间】:2011-07-15 06:55:41
【问题描述】:

我最近重新编译了 Qt,以便可以使用静态而不是共享库。但是现在,当我尝试编译我的项目时,出现以下错误:

QMAKESPEC尚未设置,无法推断配置。

这似乎是一个常见问题,我在发布之前做了一些研究。令我困惑的是我确实设置了 QMAKESPEC env var。这是 printenv QMAKESPEC

的输出

/usr/local/Trolltech/Qt-4.4.0/mkspecs/linux-g++

另外,这是 qmake -query QMAKESPEC

的输出

linux-g++

我也尝试过使用这些值,但似乎 qmake 根本看不到该变量... QTDIR 也被正确指定。

我也试过重新编译Qt并重新安装。

感谢您的帮助。

【问题讨论】:

    标签: qt qmake


    【解决方案1】:

    只需在运行 qmake 之前将其添加到脚本中

    Unix Bourne shell:
    
            QMAKESPEC=/usr/local/qt/mkspecs/linux-g++
            PATH=$PATH:/local/qmake/bin
            export QMAKESPEC PATH
    
    Unix C shell:
    
            setenv QMAKESPEC /usr/local/qt/mkspecs/linux-g++
            setenv PATH $PATH:/local/qmake/bin
    
    Microsoft Windows:
    
            set QMAKESPEC=c:\qt\mkspecs\win32-msvc
            set PATH=%PATH%;c:\qmake\bin
    

    qmake 现已安装。

    【讨论】:

    • 它可以工作,但在我的系统上,正确的绝对路径是 /usr/share/qt4/mkspecs/linux-g++(我花了一些时间才弄清楚那在哪里)。
    【解决方案2】:

    如果你懒得做额外的 set-env 东西,这里是一个单行:

        qmake -spec c:\qt\mkspecs\win32-msvc myproject.pro
    

    其他平台也一样

    【讨论】:

      【解决方案3】:

      我遇到了同样的问题,通过安装 libqt4-dev 包解决了。

      【讨论】:

      • 不幸的是,这个答案与 OP 的问题无关 - 处理 Qt 的自定义、静态构建而不是发行版。
      【解决方案4】:

      从 4.8 开始,qmake 有一个持久信息系统,可以使用-set 选项定义,并使用-query 进行查询。

      有关更多详细信息,请参阅Configuring qmake's Environment 获取 qmake 4.8 和 Configuring qmake 获取 qmake 5.0。

      【讨论】:

        【解决方案5】:

        好的,抱歉,我想我知道出了什么问题。我一直在从 /usr/bin/ 中遗留的旧 Qt 安装中获取 qmake。我现在已将其删除,并准备重新尝试安装 Qt。希望它会工作=)

        【讨论】:

          猜你喜欢
          • 2010-09-29
          • 2020-05-18
          • 2020-01-10
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2013-04-16
          • 2013-07-28
          • 2020-03-23
          相关资源
          最近更新 更多