2 moli1949 moli1949 于 2016.03.03 19:24 提问

Qt 5怎么设置msvc2010的编译器? 3C

安装完qt-opensource-windows-x86-msvc2010-5.5.1之后,为什么空的工程都编译不了。
出现这样的问题:'rc.exe' 不是内部或外部命令,也不是可运行的程序
或批处理文件。

2个回答

Crystal_Plum9
Crystal_Plum9   2016.03.03 19:27

The source code is available as a zip (270 MB) or a tar.gz (219 MB) or check all installers here.从此下载并编译。
然后,更改\qtbase\mkspecs\win32-msvc*\qmake.conf文件,把下面3行
QMAKE_CFLAGS_RELEASE = -O2 -MD
QMAKE_CFLAGS_RELEASE_WITH_DEBUGINFO += -O2 -MD -Zi
QMAKE_CFLAGS_DEBUG = -Zi -MDd
改为:
QMAKE_CFLAGS_RELEASE = -O2 -MT
QMAKE_CFLAGS_RELEASE_WITH_DEBUGINFO += -O2 -MT -Zi
QMAKE_CFLAGS_DEBUG = -Zi -MTd
并保存。
由于Qt5官方源码包是为动态编译准备的,因此要静态编译,须对源码进行更改并重命名函数,否则会出现重定义错误。
更改文件及重命名函数如下(注:在下把冲突函数加007,008重命名)

\qtactiveqt\src\activeqt\shared\qaxtypes.h
\qtactiveqt\src\activeqt\control\qaxserverbase.cpp
\qtactiveqt\src\activeqt\container\qaxbase.cpp
\qtactiveqt\src\activeqt\container\qaxwidget.cpp
文件中的 QVariantToVARIANT( 一律替换为 QVariantToVARIANT007(

\qtactiveqt\src\activeqt\shared\qaxtypes.cpp中的 QVariantToVARIANT( 替换为 QVariantToVARIANT008(

define QVariantToVARIANT QVariantToVARIANT_server

define QVariantToVARIANT QVariantToVARIANT_container

分别替换为:

define QVariantToVARIANT008 QVariantToVARIANT_server

define QVariantToVARIANT008 QVariantToVARIANT_container

另外还要更改2个API
\qtactiveqt\src\activeqt\control\qaxserverdll.cpp
STDAPI DllGetClassObject(const GUID &clsid, const GUID &iid, void** ppv)
STDAPI DllCanUnloadNow()
分别替换为:
STDAPI DllGetClassObject007(const GUID &clsid, const GUID &iid, void** ppv)
STDAPI DllCanUnloadNow007()

一切就绪后,visual studio 命令提示进入源码文件夹,输入命令:
configure -debug-and-release -fast -static -platform win32-msvc2010 -qt-zlib -qt-libpng -qt-libjpeg -qt-sql-sqlite -plugin-sql-sqlite -qt-style-windows -qt-style-windowsxp -qt-style-windowsvista -nomake demos -nomake examples -nomake docs -opengl desktop -mp
然后nmake,等待编译完成.
进入Qt Creator,点击 工具->选项->Qt 版本->添加->选择 源码文件夹\qtbase\bin\qmake.exe
再配置Kits,一切完成

moli1949
moli1949 怎么编译啊?小白不懂
接近 2 年之前 回复
u011012932
u011012932   2016.08.10 19:09
Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!