提高C ++和Windows CE 6.0 [英] Boost C++ and Windows CE 6.0

查看:195
本文介绍了提高C ++和Windows CE 6.0的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述


我succefully建STLPort的升压和C ++为Windows CE 6.0。我可以与Windows CE 6和STLPort的无论是在调试结束发行模式下运行的应用程序。

I've succefully built STLPort and Boost c++ for Windows CE 6.0. I can run application with Windows CE 6 and STLPort both in debug end release mode.

我已经建立了加强与以下批处理文件:

I've built boost with the following batch file:

@echo off
cls

:build

:release

echo building boost in release shared library

bjam ^
--with-system ^
--with-chrono ^
--with-date_time ^
--with-thread ^
--with-atomic ^
toolset=msvc-9.0~CEPlatform ^
variant=release ^
threading=multi ^
stdlib=stlport-5.2.1 ^
link=shared ^
runtime-link=shared

:debug

echo building boost in debug shared library

bjam ^
--with-system ^
--with-chrono ^
--with-date_time ^
--with-thread ^
--with-atomic ^
toolset=msvc-9.0~CEPlatform ^
define=_STLP_DEBUG=1 ^
variant=debug ^
threading=multi ^
stdlib=stlport-5.2.1 ^
link=shared ^
runtime-link=shared

goto exit

:exit
pause


我已经修改了用户config.jam中accordin此链接:[http://stackoverflow.com/questions/15906901/build-boost-c-wince/15939679#15939679][1]


我可以在一些问题释放模式升压运行的应用程序:

I've modified the user-config.jam accordin to this link: [http://stackoverflow.com/questions/15906901/build-boost-c-wince/15939679#15939679][1]

I can run application with boost in release mode with some issue:


会导致应用程序在发布模式崩溃:我不能,如果previous说明书不是present应用。似乎有些依赖都将丢失。我用的Dependency Walker和所有的依赖被解决(coredll.dll中,STLPORT.5.2.DLL,BOOST_SYSTEM-VC90-MT-P-1_53.DLL,BOOST_THREAD-VC90-MT-P-1_53.DLL,BOOST_DATE_TIME-VC90- MT-P-1_53.DLL)。

will cause the application to crash in release mode: I cannot the application if the previous statment is not present. Seems that some dependency are lost. I've used Dependency walker and all dependency are resolved (COREDLL.DLL, STLPORT.5.2.DLL, BOOST_SYSTEM-VC90-MT-P-1_53.DLL, BOOST_THREAD-VC90-MT-P-1_53.DLL, BOOST_DATE_TIME-VC90-MT-P-1_53.DLL).


在调试模式下事情最糟糕的:如果我有一个升压头(升压/ thread.hpp,升压/ chorono.hpp)我无法启动应用程序。似乎又有些DLL缺失但Dependency Walker中一切似乎确定。没有缺少DLL ...链接的DLL是:
coredll.dll中,STLPORTSTLD.5.2.DLL,BOOST_SYSTEM-VC90-MT-GDP-1_53.DLL,BOOST_THREAD-VC90-MT-GDP-1_53.DLL,BOOST_DATE_TIME-VC90-MT-GDP-1_53.DLL

In debug mode things are worst: I cannot launch the application if I include a boost header (boost/thread.hpp, boost/chorono.hpp). Seems again that some dll are missing but with dependency walker all seems ok. No missing DLL... The linked DLL are: COREDLL.DLL, STLPORTSTLD.5.2.DLL, BOOST_SYSTEM-VC90-MT-GDP-1_53.DLL, BOOST_THREAD-VC90-MT-GDP-1_53.DLL, BOOST_DATE_TIME-VC90-MT-GDP-1_53.DLL


我失去了一些东西。是否有人有想法?

Am I missing something. Does someone have an idea?

推荐答案

当隐式加载加载CE有32个字符的DLL名称长度的限制。疯狂的,这仍然是不固定的CE(更不用说正确的错误消息)也不在身边升压工作。我们上一次在工作的方法是使用,而不是'boost_system'bsystem#IFDEF UNDER_CE(类似bthread,bregex等)。也许我们也去掉了-mt,因为单线程code未在CE支持,但我必须要检查的来源。

CE has a limit of 32 characters DLL name length when loaded with implicit loading. Crazy that this still isn't fixed in CE (let alone a proper error message) nor worked around in Boost. The approach we took at work was to use 'bsystem' instead of 'boost_system' (similarly "bthread", "bregex" etc) #ifdef UNDER_CE. Maybe we also removed the "-mt", since single-threaded code isn't supported under CE, but I'd have to check the sources.

这篇关于提高C ++和Windows CE 6.0的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆