gpt4 book ai didi

c++ - boost C++ 和 Windows CE 6.0

转载 作者:太空狗 更新时间:2023-10-29 21:24:28 25 4
gpt4 key购买 nike

我已经成功地为 Windows CE 6.0 构建了 STLPort 和 Boost c++。我可以在调试结束 Release模式下使用 Windows CE 6 和 STLPort 运行应用程序。

我已经使用以下批处理文件构建了 boost:

@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

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

我可以在 Release模式下使用 boost 运行应用程序,但有一些问题:

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

将导致应用程序在 Release模式下崩溃:如果先前的声明不存在,我将无法应用程序。似乎失去了一些依赖性。我使用了 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)。

在 Debug模式下,情况最糟糕:如果我包含 boost header (boost/thread.hpp、boost/chorono.hpp),我将无法启动应用程序。似乎又缺少了一些 dll,但使用依赖 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

我错过了什么吗?有人有想法吗?

最佳答案

CE 在以隐式加载方式加载时,DLL 名称长度限制为 32 个字符。疯狂的是,这仍然没有在 CE 中修复(更不用说正确的错误消息),也没有在 Boost 中解决。我们在工作中采用的方法是使用“bsystem”而不是“boost_system”(类似“bthread”、“bregex”等)#ifdef UNDER_CE。也许我们还删除了“-mt”,因为 CE 不支持单线程代码,但我必须检查源代码。

关于c++ - boost C++ 和 Windows CE 6.0,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16016637/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com