企业🤖AI Agent构建引擎,智能编排和调试,一键部署,支持私有化部署方案 广告
## 4.5 问题与解答 问:我使用 Qt 4.5 和 Visual Studio 2008。我在编译 Qt 4.5 时总有提示:没有包 含:"windows.h",然后就无法进行 configure,请指教是什么问题。 答:这通常是 Visual Studio 没有安装完全的缘故。你需要完整的卸载 Visual Studio 2008,再重新安装完全版本,然后再编译 Qt 就应该没有错误了。如果习惯的话, 使用英文版 Visual Studio 更好。 问:Qt4.5 + visual studio 2008 中文版的问题。我安装好后,打开 Qt 的 Example, 编译的时候报错误,错误提示如下: ``` >------ Build started: Project: calculatorform, Configuration: Debug Win32 ------ >UIC calculatorform.ui >Moc'ing calculatorform.h... >Compiling... >main.cpp >calculatorform.cpp >Generating Code... >Linking... >LINK : fatal error LNK1181: cannot open input file 'QtCored4.lib' ``` 请帮忙解决。 答:从错误信息上推断,应该是安装过程出了问题。有几个关键地方需要注意,一是 安装 Visual Studio 时如果是中文版,要打上补丁 SP1;二是安装 Visual Studio 要完 整;三是不要安装 mingw,要使用 Visual Studio 编译 Qt;四是注意配置环境变量。五是 注意安装好集成插件。 问:可否实现在 Linux 下编译 Windows 环境下用 Qt + Visual Studio 2008 创建的工程? 答:这是可以实现的。步骤如下: 第 1 步,生成 .pro 文件。 第 2 步,在 pro 文件里面加宏 DEFINES += Linux 。 第 3 步,把整个工程拷贝到 Linux 机器上。 第 4 步,在命令行下面执行: ``` qmake -makefile xxx.pro ``` 生成 Makefile 文件。 第 5 步,在命令行下面运行 make 命令,生成可执行文件。 问:Visual Studio 2005 每次调试都重新执行 moc 我的 Visual Studio 2005 没有修改任何文件, 但每次调试都会重新 moc, 非常麻烦。 不知是什么原因,请指教。 答:这个与 Qt 关系不大,是 Visual Studio 的缘故。通常是由于在你的工程中,有的 文件时间设置系统时间要靠后,就是晚了。重新调整一下时间即可。 问:Qt 4.5 与 Visual Studio 集成时候出错 我将 Qt 4.5 与 Visual Studio 2005 结合使用,在执行 nmake 后,安装了 qt-vs- addin-1.0.0.exe 这个软件。但是随后打开 VS 2005 时,出现如图 4-17 所示的提示信息。 ![](https://box.kancloud.cn/2016-01-22_56a1a1470bf47.png) 图 4-17 提示信息 然后在 Visual Studio 2005 的界面上 Qt 菜单下面没有任何的下拉菜单内容,如图 4- 18 所示。不知道是什么原因,请帮助解决一下。 ![](https://box.kancloud.cn/2016-01-22_56a1a147298d2.png) 图 4-18 Qt 菜单式空白的 答:你使用的是中文版的 Visual Studio,所以你需要在安装 Visual Studio 时,同时安装上它的补丁 SP1,这样就不会出现图 4-17 所示的那个问题了,或者干脆使用英文版的Visual Studio。然后使用本章中的步骤把 Qt 与 Visual Studio 结合起来使用。有条件的 话,也可以使用 qt-vs-integration 这个系列的集成插件,它更为稳定一些。 问:我想在 Visual Studio 2008 中直接打开.ui 文件,而不是使用 Qt Designer,如 何办到? 答:这与你使用的集成插件版本有关。 到目前发布的 Qt 4.5.2 为止,如果在安装时使用的是 qt-vs-integration 就可以在 Visual Studio 2008 或者是 2005 中打开.ui 文件,但是 qt-vs-integration 这个软件不是 Open Source 的,需要有商业 license 才可以;如果使用的集成插件是 qt-vs-addin,这个 是 Open Source 的,但是在 Visual Studio 中就只能使用 Qt Designer 打开.ui 文件。 也就是说,在商业版本的 Qt 中,与 Visual Studio 结合起来使用,是可以无缝集成 的。而在 Open Source 版本的 Qt 中,与 Visual Studio 的集成使用是有一定限制的。 从 Qt Software 发布的 Qt Road Map 中可以推测,在 Qt 4.6 中这一情况有望得到改 善,即商业版和开源版 Qt 都可以与 Visual Studio 系列无缝集成。