前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Build Qt 5.2 for windows ce 6 rileo8 6 years ago Hi, i'm trying to build qt 5.2.0 (visual studio 2

Build Qt 5.2 for windows ce 6 rileo8 6 years ago Hi, i'm trying to build qt 5.2.0 (visual studio 2

作者头像
用户3519280
发布2023-07-06 14:12:43
2280
发布2023-07-06 14:12:43
举报
文章被收录于专栏:c++ 学习分享c++ 学习分享

Build Qt 5.2 for windows ce 6

This topic has been deleted. Only users with topic management privileges can see it.


rileo8 6 years ago last edited by Invalid Date Hi, i'm trying to build qt 5.2.0 (visual studio 2005) for windows ce 6. I have a windows xp machine with visual studio 2005 , perl etc installed If i run configure -platform win32-msvc2005 -xplatform wince6galileo-armv4i-msvc2005 on the Qt\5.2.0 folder it tells me: c:\Qt\5.2.0\qtbase\src\corelib\global\qlogging.cpp(96) : error C3861: 'GetConsoleWindow': identifier not found What' wrong here? I'm a little confused.... ReplyQuote 0 1 ReplyLast reply Invalid Date


Loading More Posts 11 Posts 8.7k Views Reply

Log in to reply


Qbee 6 years ago last edited by Invalid Date Hi, did you found a soloution for this issue? I think I've got exactly the same problem. I tried to build qt 5.2.1 (opensource.zip) on a Windows 7 64 bit machine with Visual Studio 2005 Professional while having ActivePerl etc. installed. I used the Visual Studio 2005 Command prompt with the following line for configure: @ configure -platform win32-msvc2005 -xplatform wince60standard-armv4i-msvc2005 -opensource -nomake examples @ ... which ends up in the following output after about 2 min.: @ ... qglobal.cpp qmalloc.cpp qlibraryinfo.cpp qnumeric.cpp qlogging.cpp D:\qt-source5.2.1\qtbase\src\corelib\global\qlogging.cpp(96) : error C3861: "GetConsoleWindow": identifier not found. Code will be generated... NMAKE : fatal error U1077: ""C:\Program Files (x86)\Microsoft Visual Studio 8\VC\BIN\cl.EXE"": return code "0x2" Stop. Building qmake failed, return code 2 @ I also tried to do just a simple: @ configure @ within Visual Studio 2005 Command Prompt -> Ends up in the same error. Does anybody knows what wents wrong here? Am i doing something totally wrong or missing something? Well I'm also confused after trying many different things... ReplyQuote 0 1 ReplyLast reply Invalid Date


koahnig 6 years ago last edited by Invalid Date welcome to devnet I was just stumbling over your post. I have noticed that neither your post nor the previous refers to the windows embedded CE kit which has to be installed separately "e.g. this one":http://www.microsoft.com/en-us/download/details.aspx?id=15883 This might be a stupid suggestion and you have already done this. So just in case. Vote the answer(s) that helped you to solve your issue(s) ReplyQuote 0 1 ReplyLast reply Invalid Date


Qbee 6 years ago last edited by Invalid Date Hi, thanks for your suggestion. Today I've tried something different and get the configure to work. I know the following is totally restricted etc. but had to gave it a try :). I modified the problem file qtbase\src\corelib\global\qlogging.h and added the following on top of it: @ #ifndef _WIN32_WINNT #define _WIN32_WINNT 0x0500 #endif @ I found this soloution while searching for "getConsoleWindow" problems. The reference is written down as remark here -> http://msdn.microsoft.com/en-us/library/windows/desktop/ms683175(v=vs.85).aspx After this my configure runs fine without any problems. But now I expected the following error after calling nmake. After nmake runs ~30 mins i got the following output: @ d:\readonly\qtsrc\qtbase\include\qtcore../../src/corelib/tools/qvector.h(666) : error C2244: 'QVector<T>::erase' : unable to matc h function definition to an existing declaration definition 'QVector<T>::iterator QVector<T>::erase(QTypedArrayData<T>::iterator,QTypedArrayData<T>::iterator)' existing declarations 'QTypedArrayData<T>::iterator QVector<T>::erase(QTypedArrayData<T>::iterator)' 'QTypedArrayData<T>::iterator QVector<T>::erase(QTypedArrayData<T>::iterator,QTypedArrayData<T>::iterator)' @ There are some more errors but all with QVector<T>::insert and QVector<T>::erase. I Googled a bit and found this post here which looks like a similar problem and is also not replied yet: http://qt-project.org/forums/viewthread/36735 I think i have to say that i compile for custom ce sdk. So i changed the qtbase\mkspecs\wince60standard-armv4i-msvc2005\qmake.conf and added additional includes and libraries there. I also use the following defines there: @ DEFINES += WINCE _WINDOWS WINDOWS_CE_OS _WIN32_WCE=0x600 UNDER_CE=0x600 ARM ARM ARMV4I UNICODE _UNICODE _USE_32BIT_TIME_T _CRT_SECURE_NO_DEPRECATE $$CE_ARCH AMRV7 armv7 ARM QT_NO_CLIPBOARD QT_NO_ACCESSIBILITY QT_NO_NATIVE_GESTURES QT_NOSTANDARDSHELL_UI_MODEL @ Is it so hard to compile qt 5.2.1 for ce? Should i use an older version of qt (i need at least qt5 for JSON handling)? Any suggestions? ReplyQuote 0 1 ReplyLast reply Invalid Date


  • koahnig 6 years ago last edited by Invalid Date Please check out how to use "code tags for code wrappings":http://qt-project.org/wiki/ForumHelp#e3f82045ad0f480d3fb9e0ac2d58fb01 I have introduced them for you. The only experience I have is a while back. I had used Qt4.5 and went the way up to Qt4.7 I believe. In addition it was the older windows CE 5 version. Personally I would start there when looking to cross-compile for win CE 6. However, you have to know if it is a solution for you. One thing I just saw by chance is some mismatch above. You use @ DEFINES += ... _CRT_SECURE_NO_DEPRECATE

pkuebler 6 years ago last edited by Invalid Date Hi there, I'd also like to build QT (5.2.1) for Windows CE. My assumption is that the qmake.conf within mkspecs seems not to be used. I use: C:\Qt\5.2.1>configure -platform win32-msvc2005 -xplatform wince60un31-armv4i-msvc2005 Within my qmake.conf file I added _CRT_SECURE_NO_WARNINGS to DEFINES and QMAKE_COMPILER_DEFINES. However, I still get compiler warnings with _CRT_SECURE_NO_WARNINGS. Building qmake also fails on GetConsoleWindow. I took a look into the qlogging.cpp. There is an ifdef around this code section: @#if !defined(Q_OS_WINCE) && !defined(Q_OS_WINRT) static inline bool hasStdErr() { if (GetConsoleWindow()) return true; STARTUPINFO info; GetStartupInfo(&info); return (info.dwFlags & STARTF_USESTDHANDLES) && info.hStdError && info.hStdError != INVALID_HANDLE_VALUE; } endif // !Q_OS_WINCE && !Q_OS_WINRT@ Apparently Q_OS_WINCE doesn't seem to be set. How could this be? Best regards, Peter ReplyQuote 0 1 ReplyLast reply Invalid Date


pkuebler 6 years ago last edited by Invalid Date Hmm... strange. To me it seems more and more that the configure.exe tries to build against standard Win32 API even if there is a WinCE qmake config in use. ReplyQuote 0 1 ReplyLast reply Invalid Date


Qbee 6 years ago last edited by Invalid Date Thanks koahnig for the introduction of code tags and the hint to "ARM vs AMR". Changing the define to "...ARM..." instead of "...AMR ..." has no effect regarding this error here. Also the installation of the CE TestKit brings no effect. Yesterday I tried to change my added define to: @ if !defined(Q_OS_WINCE) && !defined(Q_OS_WINRT) #define _WIN32_WINNT 0x0500 endif @ ... to ensure that that _WIN32_WINNT is not set during compilation for wince. But it even ends up in the QVector<T> error described above. I also tried adding the _WIN32_WINNT define to win32-msvc2005 mksepc (qmake.conf and qplatformdefs.h) which also ends up in the "getConsoleWindow" error. Next thing what i tried is a simple @ configure @ in a Visual Studio 2010 environment without modified qlogging.h, which simply works. But VS2010 finally has no platform sdk etc. Doing the same in a Visual Studio 2005 environment ends up in the getConsoleWindow error. Today I will give Visual Studio 2008 a try even Visual Studio 2005 with qt 5.1 Source instead of qt 5.2.1. I will post my experience here (if there is something (:). ReplyQuote 0 1 ReplyLast reply Invalid Date


Qbee 6 years ago last edited by Invalid Date Hello again! configure like this @ ..\configure -platform win32-msvc2008 -xplatform wince60standard-armv4i-msvc2008 -opensource -nomake examples -no-compile-examples -qt-zlib -no-accessibility -no-native-gestures -qt-pcre -no-icu -no-gif -qt-libpng -no-opengl -skip winextras -confirm-license -prefix %INSTALLDIR% @ with Visual Studio 2008 works. With the following configuration result: http://pastebin.com/345YfF2P I just copied the "wince60standard-armv4i-msvc2005" mkspec (the qt default one), changed the name to " wince60standard-armv4i-msvc2008", changed the CE_SDK to our CE60 SDK name and changed the defines to the following: @ DEFINES += WINCE _WINDOWS WINDOWS_CE_OS _WIN32_WCE=0x600 UNDER_CE=0x600 ARM ARM ARMV4I _CRT_SECURE_NO_DEPRECATE $$CE_ARCH QT_NO_CLIPBOARD QT_NO_ACCESSIBILITY QT_NO_NATIVE_GESTURES QT_NOSTANDARDSHELL_UI_MODEL ARMV4I _M_ARM arm @ Currently I stuck with the following error after many qt things are built with VS2008: @ D:\Daten\External--qt-everywhere-opensource-src-5.2.1\qtbase\src\plugins\platforms\windows\qwindowsdialoghelpers.cpp(785) : error C2504: 'IFileDialogEvents': base class undefined @ This is the first error I get. After this there are many syntax errors. ReplyQuote 0 1 ReplyLast reply Invalid Date


pfg23 5 years ago last edited by Invalid Date Hi there, As @pkuebler noted, Q_OS_WINCE isn't defined by the make system so C:\Qt\5.3.0\qtbase\src\corelib\global\qlogging.cpp fails to compile with the GetConsoleWindow error. I was able get passed this by defining Q_OS_WINCE right at the top of qlogging.cpp. Adding the define to the configure line or to C:\Qt\5.3.0\qtbase\mkspecs\common\wince\qplatformdefs.h didn't work. You must do one more thing, as noted @Qbee's post above. You must update the CE_SDK constant in qmake.conf in qtbase\mkspecs<build-target> to the name of the WinCE SDK you're using. For example, I had to set mine to CE_SDK = Windows Mobile 6 Standard SDK Odd, since it's in the wince60standard-armv4i-msvc2005 directory. I was then able to successfully complete the configure step. ReplyQuote 0 1 ReplyLast reply Invalid Date


Qbee 5 years ago last edited by Invalid Date Hi, I forgot to post an update here regarding my qt5 wince 6 experience. Finally I've got a successful build small build of qt5 for windows ce 6 built with VS2008. But as you can see in the configure command there are many missing components even the whole gui module. The following configure command enabled me to build qt5: @ configure -platform win32-msvc2008 -xplatform wince60embedded-armv4i-msvc2008 -opensource -nomake examples -no-compile-examples -no-accessibility -no-native-gestures -no-gui -no-opengl -no-icu -skip activeqt -skip winextras -skip declarative -skip location -confirm-license @ Currently it is okay for us to stay without the gui module in a wince environment since Core, JSON, XML etc. module works fine. The build with the gui modules currently stucks with the following error: @ qwindowsdialoghelpers.cpp qwindowsdialoghelpers.cpp(804) : error C2504: 'IFileDialogEvents': Base class undefined @ Next step is to get the qtmultimedia module working under wince. With the above described configure, the build system doesn't build the multimedia module. Does anybody know how to build the multimedia module for wince? Is there a way for just building the multimedia module without doing a new whole qt build?

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2023-06-28,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Build Qt 5.2 for windows ce 6
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档