使用VS2010编译QT

2023-11-05

首先不要使用中文目录,

 
发布QT程序时,为了使没有QT依赖库的环境中也能运行QT程序,这就需要静态编译你的QT程序。要达到这个目的,首先必须静态编译你的QT库文件

1 下载Qt的安装包和VS2010的Qt插件

2. 安装Qt Library, 注意不能装Qt SDK 我装了Qt SDK1.1.2之后,找不到configure程序,也不知道怎么回事。

3. 安装Qt的VS开发插件

4. 编译Qt

Qt默认使用mingw进行编译,如果要使用VS2010开发,需要将Qt重新编译。

进入开始菜单Microsoft Visual Studio 2010,Visual Studio Tools,Visual Studio Command Prompt (2010),需要注意的是,这里面必须是使用Visual Studio Command Prompt (2010),不能使用CMD的Dos窗口

进入Qt的安装目录后,执行CD Qt,进入Qt的根目录

image

运行命令 configure -platform win32-msvc2010


配置编译选项:Configure -debug-and-release -opensource -static-no-qt3support -mp -platform win32-msvc2010

-release  :编译版本

-static :静态编译,这个选项必须选择
后面的参数是选择性编译,为了加快编译速度(-no-去掉的模块名)

o(选择opensource模式)回车,Y(同意license)回车

image

接着就会自动配置Qt的编译环境,等配置结束后,运行nmake,回车,Qt就会开始漫长的编译过程,这段时间非常长,需要4个小时以上,大家可以在晚上睡觉的时候进行编译。

这里可以不使用nmake来编译,使用jom.exe,这是一个替代nmake的工具能够利用多核CPU的资源来并行编译,能缩短编译时间
jom -j 2   即可 2 表示2核 
下面是地址
http://qt.gitorious.org/qt-labs/jom   实践证明,这个不好用,编译过程中出错,还是老老实实的nmake吧


我在编译的时候有两次错误需要处理,解决方法如下

编译大概1个小时之后,出现:

01.api/qscriptextensionplugin.h(43): Error: Undefined interface
02.NMAKE : fatal error U1077: 'C:/Qt/2009.05/qt/bin/moc.exe' : return code '0x1'
03.Stop.
04.NMAKE : fatal error U1077: '"d:/Program Files/Microsoft Visual Studio 9.0/VC/BIN
05./nmake.exe"' : return code '0x2'
06.Stop.
07.NMAKE : fatal error U1077: 'cd' : return code '0x2'
08.Stop.
api/qscriptextensionplugin.h(43): Error: Undefined interface
NMAKE : fatal error U1077: 'C:/Qt/2009.05/qt/bin/moc.exe' : return code '0x1'
Stop.
NMAKE : fatal error U1077: '"d:/Program Files/Microsoft Visual Studio 9.0/VC/BIN
/nmake.exe"' : return code '0x2'
Stop.
NMAKE : fatal error U1077: 'cd' : return code '0x2'
Stop.

以上是出错代码,解决方法是将

qt/src/script/tmp/moc/debug_shared/mocinclude.tmp
qt/src/script/tmp/moc/release_shared/mocinclude.tmp

删除,然后继续编译。

过了很长时间之后,在编译webkit部分的代码时,会发生错误,系统会停止编译
D:/tools/Qt/2010.05/qt/src/3rdparty/webkit/WebCore/tmp/moc/debug_shared/moc_Sock
etStreamHandlePrivate.cpp(97) : error C2065: “QSslError”: 未声明的标识符
D:/tools/Qt/2010.05/qt/src/3rdparty/webkit/WebCore/tmp/moc/debug_shared/moc_Sock
etStreamHandlePrivate.cpp(97) : error C3861: “socketSslErrors”: 找不到标识符
正在生成代码...
NMAKE : fatal error U1077: “"D:/tools/Microsoft Visual Studio 10.0/VC/BIN/cl.EX
E"”: 返回代码“0x2”
Stop.
NMAKE : fatal error U1077: “"D:/tools/Microsoft Visual Studio 10.0/VC/BIN/nmake
.exe"”: 返回代码“0x2”
Stop.
NMAKE : fatal error U1077: “cd”: 返回代码“0x2”
Stop.

解决方法是将

qt/src/3rdparty/webkit/WebCore/tmp/moc/debug_shared/mocinclude.tmp
qt/src/3rdparty/webkit/WebCore/tmp/moc/release_shared/mocinclude.tmp
删除之后可以继续编译(重新执行nmake命令)

 

然后编译就可以正常了。

 

下面是配置vs2010

5.配置VS2010的Qt开发环境(VS2010最好是英文版本,Qt对VS2010中文版本可能支持的不好)

等Qt编译好后就可以配置VS2010的开发环境了,进入VS2010,选择Qt菜单,Qt Option,进入下图界面

image

  点击Add,添加Qt的安装目录

此时我又遇到了一个问题,QT in the given path was built using minGW

解决方法如下

删除lib目录下面的libqtmain.a andlibqtmaind.a 文件即可

清理前,切记把C:\Qt\4.7.3下面的 qmake.cache和configure.cache备份到别的地方,然后

nmake confclean 腾出空间。
最后再把C:\Qt\4.7.3下面的 qmake.cache和configure.cache 复制回远处

  如果不这样,安装 qt-vs-addin 后进行 Qt Versions 添加路径时将失败。



 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用VS2010编译QT 的相关文章

  • QTableView 中的虚拟列?

    我开始学习 Qt4 模型 视图编程 我有初学者问题 我有一个简单的应用程序 其中显示 sqlite 表QTableView class Model QtSql QSqlTableModel def init self parent None
  • 当 QML 对象不可见时防止 QML 属性绑定?

    我正在开发一个具有大量属性绑定的 QML 应用程序 数百个对象被跟踪并以不同的形式显示 例如 Qt3D QCanvas 当我在应用程序的单独页面上时 x y 位置和相对大小的属性绑定仍在发生 我怎样才能阻止他们 我知道我可以根据属性是否可视
  • 如何在 Qt-Embedded 中(正确)输出多语言文本?

    我的目标系统是 linux 3 3 7 Qt Embedded 开源版 4 8 Droid 字体 取自 fonts droid 20111207 git 1 all deb Debian 软件包并复制到 usr lib fonts目录 主要
  • Qt程序部署到多平台,如何?

    我是 Qt 编程新手 我想开发一个程序 我想在 Windows Linux ubuntu 和 Mac 上运行 听说Qt支持多平台应用程序开发 但我的问题是 在我部署或编译后 任何 Qt 库都需要在 Ubuntu 中运行这个应用程序吗 如果您
  • 有没有办法在没有 QApplication::exec() 的情况下使用 Qt?

    有没有一种安全的方法可以在不调用 QApplication exec 的情况下使用 Qt 我有许多不同的对象正在对多个资源执行长期进程 至少其中一个正在与 Web 应用程序服务器进行通信 我正在制作一个 GUI 应用程序 提示用户在正确的时
  • 开源隐形 reCAPTCHA 替代方案 [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 有没有像 Google 的 Invisible reCAPTCHA V2 这样接近或最好的开源解决方案
  • (如何)我可以抑制未找到包配置文件的警告吗?

    我正在尝试创建一个CMakeLists txt尝试查找的文件Qt5 如果失败 则尝试回退到Qt4安装 该脚本到目前为止有效 但如果出现以下情况我总会收到警告Qt5未安装 注意FindQt5 cmake是由提供Qt5并且仅当以下情况时才可用Q
  • Git 中的专有+开源设置? (例如铬/铬)

    您将如何设置一个拥有专有版本和开源版本 例如 Chrome 和 Chromium 的代码存储库 对于 Git 您会使用两个分支还是两个存储库 您如何使 私有 版本与开源版本保持同步 如果是我 我会有两个存储库 这样 您就可以对每个版本拥有不
  • Alfresco 和 Nuxeo 哪个更容易扩展? [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 我正在考虑做一个rewrite http kato agency blogspot com 2009 12 kato redesign html
  • 从布局中按名称获取小部件

    如果我想从 python Qt 的布局中获取特定的小部件 我应该如何进行 到目前为止我所做的 for i in range self ui horizontalLayout 14 count here it does fail name s
  • 通过 GitHub、Sonatype Maven 存储库提供 JavaDocs [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 尽管 Github 为 Java 开源项目提供了一个不错的家园 但与更成熟的开源托管场所相比 仍然缺少一些东西 到目前为止 我发现 S
  • 开源 EDA 项目

    您知道 EDA 电子设计自动化 领域有哪些开源项目正在寻找 C 程序员吗 如果您经常关注 gEDA 的邮件列表 您也许能够加入 gEDA 细节 http www gpleda org developer html http www gple
  • 在 Qt5 中,是否需要 Q_INVOKABLE 来从 QML 调用公共 QObject 函数?

    我刚刚意识到我可以调用暴露于 QML 的对象的几乎任何函数 现在我对 Q INVOKABLE 很好奇 Qt5docs http doc qt io qt 5 qtqml cppintegration exposecppattributes
  • QToolButton:更改菜单位置

    使用菜单时QToolButton菜单显示在按钮的正下方 有没有办法在按钮的左侧 右侧显示菜单 我知道这个问题不久前已得到回答 但我想为此问题添加新答案 因为接受的答案不再有效 实际上 更改 QToolButton 上的菜单位置非常容易 您需
  • Qt:测量事件处理时间

    我想测量我的应用程序中的哪些事件在主线程中需要很长时间才能执行 阻塞 GUI 或者至少是否有任何事件花费的时间超过 比如说 10 毫秒 显然 我对需要很长时间的任务使用线程和并发 但有时很难在其他线程中放入的内容和可以保留在 GUI 中的内
  • QTimer 一点也不准确?

    运行在 Windows7 64 位机器上 具有非常强大的 CPU 8 核 16 线程 我使用 QTimer 以 50Hz 触发函数调用 但我最终得到了 30Hz 函数调用本身肯定需要不到 10 毫秒才能完成 整个过程发生在一个单独的线程中
  • 在 MacOS 终端上运行 ffmpeg [关闭]

    Closed 这个问题是无关 help closed questions 目前不接受答案 我对 MacOS 相当陌生 我发现使用终端来获取信息并不容易ffmpeg和我在 Window 上一样正常运行 我有 ffmpeg 二进制文件ffmpe
  • Qt 插槽是否与其他代码并行运行?

    在此函数示例中 void MyClass myFunction emit MySignal1 emit MySignal2 如果我有slot1倾听MySignal1 and slot2倾听MySignal2 1 Is slot1总是会在之前
  • 如何使用meta-toolchain-qt5构建Qt(带有QtWebEngine支持)?

    我正在尝试使用构建 Qtmeta toolchain qt5 但是当我通过这样做时poky glibc x86 64 meta toolchain qt5 cortexa7hf vfp vfpv4 neon toolchain 2 0 1
  • Qt moc 在头文件中实现?

    是否可以告诉 Qt MOC 我想声明该类并在单个文件中实现它 而不是将它们拆分为 h 和 cpp 文件 如果要在 cpp 文件中声明并实现 QObject 子类 则必须手动包含 moc 文件 例如 文件main cpp struct Sub

随机推荐

  • Redis发布/订阅、事务、Bloom、过期策略

    文章目录 发布 订阅 pub sub 事务 RedisBloom 缓存 TTL 发布 订阅 pub sub publish channel message subscribe channel sub后就可以收到pub信息 群聊信息存储 事务
  • 耳语秘密WhisperedSecrets PurrfectHorror CE

    WhisperedSecrets PurrfectHorror CE耳语秘密 完美恐怖收藏版是一款恐怖游戏 当当地的埃及学教授在城市博物馆的文物被盗后向您寻求帮助时 对于像您这样的专家来说 这似乎是一个简单的案例 但当您发现阿波夫之镰超出了
  • 高斯顺序消元法c++程序代码及实例

    include using namespace std define n 4 通过符号常量定义线性方程组的规模大小 当前的n值表示适用解n元一次线性方程组 void Process of elimination double A n n d
  • Vue.js 报错:Cannot read property ‘validate‘ of undefined“

    错误解决 起因 是我将elemnt ui登录 默认放在mounted 函数里面 导致vue初始化就调用这个函数 找了网上 有以下错误原因 1 一个是你ref写错了 导致获取不了这个表单dom 我这显然不是 2 我们vue初始化时 eleme
  • Springboot+POI 带有图片的表格导入导出功能解析

    今天来讲下在导入数据的场景时 表格中会有一列存放的是对应的图片信息 导入后在前端页面进行表格数据展示 这里的难点主要在于 对于获取表格中图片列的图片数据进行保存到服务器以及对应插入数据库 建议一般是用图片的保存服务器的路径地址保存到数据库中
  • idea装载jerbel以及文件上传下载

    一 JRebel 1 1 Jrebel介绍 JRebel是一个Java开发工具 它是一款用于实时代码重载的插件 它的主要功能是在不重新启动应用程序的情况下 将修改后的Java代码实时应用到正在运行的应用程序中 从而加快开发周期 提高开发效率
  • SQL Server常用数据类型

    SQL Server常用数据类型 数据类型是数据的一种属性 是数据所表示信息的类型 下面是小编为大家搜索整理了关于SQLServer常用数据类型 欢迎参考阅读 希望对大家有所帮助 SQLServer2000提供了比较多的数据类型供用户使用
  • MySQL中删除重复数据只保留一条

    MySQL中删除重复数据只保留一条 数据 INSERT INTO test time uuid name VALUES 1 wang INSERT INTO test time uuid name VALUES 2 王 INSERT INT
  • Object与json字符串的相互转换

    Object与json字符串的相互转换 第一步 引入fastjson的依赖jar包 注 maven项目 直接在pom xml中进行配置即可 注 如果引入此版本的依赖 导致项目不能启动 报错 找不到启动类 那么可以换一个版本的fastjson
  • PyTorch 深度学习模型压缩开源库(含量化、剪枝、轻量化结构、BN融合)

    点击我爱计算机视觉标星 更快获取CVML新技术 本文为52CV群友666dzy666投稿 介绍了他最近开源的PyTorch模型压缩库 该库开源不到20天已经收获 219 颗星 是最近值得关注的模型压缩开源库 开源地址 https githu
  • FreeRTOS学习笔记 6 - 互斥量

    目录 1 创建 2 获取 3 释放 4 测试 FreeRTOS不支持调度方式的设置 所以下面2个宏定义可以随意设置值 define RTOS IPC FLAG FIFO 0x00 define RTOS IPC FLAG PRIO 0x01
  • 灰度重采样的方法分为_均值采样

    from skimage import datafrom matplotlib import pyplot as pltimport numpy as npimage data coffee print image shape 显示图像原始
  • Python连接Oracle数据库

    cx Oracle cx Oracle模块是Python连接Oracle数据库的模块 在Python中 如果要连接Oracle 必须先安装cx Oracle模块 cx Oracle的下载地址 https pypi python org py
  • 【 华为OD机试 2023】 最快到达医院的方法(C++ Java JavaScript Python)

    华为od机试题库 华为OD机试2022 2023 C Java JS Py https blog csdn net banxia frontend category 12225173 html 华为OD机试2023最新题库 更新中 C Ja
  • printk与内核日志打印优先级设置

    1 控制台的日志优先级 define KERN EMERG lt 0 gt 致命级 紧急事件消息 系统崩溃之前提示 表示系统不可用 define KERN ALERT lt 1 gt 警戒级 报告消息 表示必须采取措施 define KER
  • MySQL 数据库引擎

    引擎分类 InnoDB MyIsam 引擎对比 单位 ms 测试项 MyIsam InnoDb 结论 insert 100w 28825 123487 百万级插入性能 MyIsql 在30秒内完成性能优于 InnoDb 性能相差接近5倍 u
  • docker安装MongoDB

    base rootyx rootyx Default string sudo docker pull mongo 4 4 4 4 Pulling from library mongo 99803d4b97f3 Pull complete 6
  • NODE => CORS跨域资源共享学习

    1 CORS跨域资源共享 cors是Express的一个第三方中间件 通过安装和配置cors中间件 可以很方便地解决跨域问题 运行npm install cors 安装中间件 使用const cors require cors 导入中间件
  • Qt信号槽使用注意事项

    使用信号槽connect时 1 信号函数和槽函数都不能加形参 2 信号函数和槽函数形参列表要保持一致
  • 使用VS2010编译QT

    首先不要使用中文目录 发布QT程序时 为了使没有QT依赖库的环境中也能运行QT程序 这就需要静态编译你的QT程序 要达到这个目的 首先必须静态编译你的QT库文件 1 下载Qt的安装包和VS2010的Qt插件 2 安装Qt Library 注