提高C ++和Windows CE 6.0(Boost C++ and Windows CE 6.0

2019-08-31 06:47发布

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

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

@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]

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

boost::this_thread::sleep_for(boost::chrono::seconds(1));

会导致应用程序在发布模式崩溃:我不能应用程序,如果以前的statment不存在。 似乎有些依赖都将丢失。 我用的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)。

在调试模式事情最糟糕的:如果我有一个升压头(升压/ 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

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

Answer 1:

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



Answer 2:

这些选项可能已被后来的升压的版本改变。 我用--layout =系统选项和BOOST_AUTO_LINK_NOMANGLE宏,和他们的工作。

我使用升压1.55。



文章来源: Boost C++ and Windows CE 6.0