使用nmake编译Qt给出命令行错误D8021:无效的数字参数'/ FS'

时间:2014-07-01 14:12:08

标签: c++ qt deployment compiler-errors visual-studio-2013

我正在尝试将我的Qt应用程序部署到Windows,当我运行nmake关于/ FS是无效的数字参数时,我收到错误。看起来它是某种编译标志,编译器无法识别它。我不知道如何解决这个问题,似乎没有任何信息,而不是这里提供的信息http://qt-project.org/doc/qt-5/windows-deployment.html

我在Deploying a Qt 5.3 App on Windows

发布了原始问题

此人有同样的问题Deploying a 32-bit Qt 5.3.0 app (Stand-Alone)

我正在使用Visual Studio 2013进行Qt 5.3。因为这两个问题都表明它似乎正在运行来自VS 2010的cl和nmake。我打赌这就是问题出在哪里

感谢您对此问题的任何帮助

6 个答案:

答案 0 :(得分:4)

使用cl.exe版本18.x进行编译。

答案 1 :(得分:2)

有同样的问题,我从qtenv2.bat调用错误的vcvars32.bat,基本上是使用MSVC2010和Qt for MSVC2013

正如edwinc所提到的,编译器版本应为18.x

答案 2 :(得分:1)

Qt 5.4.1,VS 2013.修正了

的问题
C:\Qt\Qt5.4.1\5.4\msvc2013_64\mkspecs\win32-msvc2013\

中删除错误参数
QMAKE_CFLAGS = -nologo -Zm200 -Zc:wchar_t 

答案 3 :(得分:0)

我遇到了同样的问题,试图为Qt5编译已弃用的QtHttp和QtFtp模块。你是对的,问题的原因是MSVC编译器版本不匹配。以下是我在其他人遇到此事时发现的一些事情:

  • qmake将从qtbase引入mkspecs。因此,如果您使用一个编译器构建Qt并尝试使用来自不同版本的VS命令提示符编译单个模块,则不会关心您使用了正确的vsvars bat。
  • qmake可以传递-spec标志以强制它使用给定的规范。例如。 qmake -spec win32-msvc2010
  • 用一个编译器版本编译Qt,用另一个编译器编译你的应用程序可能会编译和链接正常。当你尝试运行它时,它会崩溃或无法启动,充其量。最糟糕的情况是,你会在运行时遇到奇怪的微妙错误。

答案 4 :(得分:0)

如果您安装了多个Qt套件,可能是由于运行多个Qt Creator,在套件之间切换可能会导致此类问题。一丝不苟地确保您使用正确的Qt套件,如果它是自动检测套件,那么您使用的是正确的Qt Creator。

打开项目后,请查看您的工具包:

  1. 选项>建设与发展运行
  2. 选择套件标签
  3. 确保您的工具包已选中
  4. 另外,请考虑点击“设为默认值”将其设置为默认套件
    • 该套件现在应以斜体粗体显示
  5. 执行QMake跟随重建

答案 5 :(得分:-1)

您是否尝试使用VS本身进行编译?它有效吗?

无论如何,尝试检查C:/ windows / ...文件夹中的C1.dll(尝试搜索下面的目录),它是一个旧的,像5年前一样被创建?如果是这样,您可能希望将其替换为较新的版本,例如VS2013文件夹中包含的版本。