platform\DefaultLocalizationStrategy.cpp(327) : error C2001: newline in constant
platform\DefaultLocalizationStrategy.cpp(327) : fatal error C1057: unexpected end of file in macro expansion
这个错误的原因是因为代码里面的非英文的引号造成的。
原始的错误代码如下:
return WEB_UI_STRING("Look Up “<selection>”", "Look Up context menu item with selected word").replace("<selection>", truncatedStringForLookupMenuItem(selectedString));
注意 <selection> 单词前后的引号。就是它造成编译报错。修改成下面的代码
return WEB_UI_STRING("Look Up \"<selection>\"", "Look Up context menu item with selected word").replace("<selection>", truncatedStringForLookupMenuItem(selectedString));
注2:如nmake出现错误,一般重新nmake即可。但如果vs2005安装有问题,需修复vs2005. 我在编译过程中就出现了此情况,nmake总是错误,修复后就OK了。
1.操作系统:win7
2.wince上的Qt库版本:qt-everywhere-opensource-src-4.7.3.zip
3.Wince6.0
4.Vs2005
5.qt在windows下面的sdk:qt-sdk-win-opensource-2010.05.exe或者qt-win-opensource-4.7.3-vs2008.exe
6.Qt在vs上的插件:qt-vs-addin-1.1.9
首先安装vs2005及各个补丁:
安装顺序:
1. vs2005
2. Visual Studio 2005 Service Pack1
3. Visual Studio 2005 Service Pack1 Update for Windows Vista
4. Visual Studio 2005 Service Pack1 ATL Security Update
这一步安装遇到的问题:
Vs2005我第一次下载的是英文试用版,安装的时候显示内存不足的错误(明明还有2G空间),于是重新下了个中文版vs2005,安装成功.相应的补丁也要下中文版的
安装wince6.0及补丁:
安装顺序:
1. wince6.0
2. Windows Embedded CE 6.0Platform Builder Service Pack 1
3. Windows Embedded CE 6.0 R2
4. Windows Embedded CE 6.0 R3
5. 安装sdk,我用的是友善之臂公司提供的Mini6410-CE6-SDK
安装qt for wince库:qt-everywhere-opensource-src-4.7.3.zip
我第一次下载的是最新版的qt库: qt-everywhere-opensource-src-4.7.4.zip,然后再nmake的阶段总是出现问题:
Creatinglibrary ..\..\lib\QtGuid4.lib and object ..\..\lib\QtGuid4.exp
pngwrite.obj : error LNK2019: unresolved externalsymbol gmtime referenced in function png_convert_from_time_t
..\..\lib\QtGuid4.dll : fatal error LNK1120: 1unresolved externals
在国外论坛上发现一个解决方法:
注释掉qt源代码:/src/3rdparty/libpng/pnglibconf.h中的一句话:
#definePNG_CONVERT_tIME_SUPPORTED
然后重新配置configure即可.
因为据说4.7.4还有其他一些问题,所以我干脆下载了4.7.3来使用.
安装顺序:
1. 解压qt-everywhere-opensource-src-4.7.4.zip到e:盘下qt_wince文件夹
2. 增加环境变量e:\qt_wince\bin
3. 修改E:\qt_wince\mkspecs\wince60standard-armv4i-msvc2005中的qmake.conf文件中的CE_SDK = Mini6410-CE6-SDK # replace with actual SDK name
4. 打开vs2005,打开工具->visual studio 2005 command prompt
5. 输入命令:configure -platform win32-msvc2005 -xplatformwince60standard-armv4i-msvc2005.这一步是配置qt库,配置需要几分钟,配置成功会在qt_wince/bin下面生成一些列工具.可以用checksdk.exe –list查看当前装的sdk版本.
6. 输入命令: set INCLUDE=E:\Microsoft Visual Studio 8\VC\ce\include;E:\WindowsCE Tools\wce600\Mini6410-CE6-SDK\Include\Armv4i
7. 输入命令: set LIB=E:\Microsoft Visual Studio 8\VC\ce\lib\armv4i;E:\WindowsCE Tools\wce600\Mini6410-CE6-SDK\Lib\ARMV4I
8. 输入命令: set PATH=E:\Microsoft Visual Studio 8\VC\ce\bin\x86_arm;%PATH%
9. 输入命令nmake,这一步需要几个小时(跑了一夜,早上起床编译成功)
到这一步qt库以及编译完毕.
安装qt在windows下面的sdk:qt-sdk-win-opensource-2010.05.exe
安装好后,qt默认是mingw编译的,所以需要用nmake重编译
1.打开vs2005,打开工具->visual studio 2005 command prompt
2.进入指定目录下:cd E:\Qt\2010.05\qt
3.编译:configure -debug-and-release -platform win32-msvc2005
4.编译完成后nmake,大概8个小时后就好了吧(我的笔记本时间)
nmake前注意:
以下是一个网友遇到的,我不幸也遇到了- -!,所以先删除那4个文件先
原链接:http://hi.baidu.com/316194566/blog/item/3452c0dce2650db4cd11668e.html
在编译QT代码时,会遇到一些问题,我遇到了两个问题。
然后继续编译N久之后,又出现了问题。。。
编译大概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命令)
编译好后,wince上的qt库就编译成功了,可以打开qt下demo工程编译测试.
QT已经有编译好的VS库,可以直接安装qt-win-opensource-4.7.3-vs2008.exe而不必经历上面这步的过程!!!
安装Qt在vs上的插件:qt-vs-addin-1.1.9
没什么好说的,安装好后在vs上出现qt的插件图标
这个时候启动Qt->Launch Designer失败,显示错误:QT in the given path was built using minGW
恩,这个已经是最后一个问题了,解决方法:
原链接:http://dangflying.blog.163.com/blog/static/8693721820116298035/
1.修改注册表:
HKEY_CURRENT_USER\Software\Trolltech\Versions\
下增加一个子项
qt201005(需要的名称)
子项下面增加一个数值 InstallDir,值就是你要配置的Qt路径
2.删除文件
删除qi的lib目录下的
libqtmain.a and libqtmaind.a 两个文件。
好了,大功告成,环境配置成功!
接下来可以把qt编译的程序部署到wince板子上进行测试,
将exe文件拷入想要的目录,然后拷贝几个库文件进去:
QtCore4.dll,QtGui4.dll,QtCored4.dll,QtGuid4.dllmsvcr90d.dll
前两个release版本,后两个是debug版本文件.