- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我知道这是类似的问题,但对我没有帮助。我想在 x86 平台上为 Windows CE 6 构建 boost 。
我已经成功构建了 STLPort Release模式作为 WINCE 的共享库,我还添加了一些补丁并集成了 OpenCE Time 库并实现了一些缺失的 ANSI C 函数。 STLPort 测试没问题(只是 wcout、wcin 和 wcerr in_avail() 函数的问题,我不知 Prop 体问题出在哪里)。
为了构建 boost ,我创建了一个批处理文件并以这种方式更改了 user-config.jam。构建没问题,但似乎我正在为我的 Windows Xp 平台而不是 WinCE 进行编译。
boost 构建系统非常复杂,我不明白它是如何工作的(文档不是很好,在谷歌上也没有太多)。 boost 的构建没问题,但我无法运行应用程序。似乎缺少一些 DLL 或者 Boos DLL 是错误的。当我连接调试器时收到的消息是“Nessun processo all'estremita' della PIPE”->“PIPE 末尾没有进程”。当我尝试从目标设备启动应用程序时,它没有任何效果。我错了吗?如何告诉 boost 使用特定配置?
另一个问题是我看不到构建日志。我不知道我到底在 build 什么。有没有办法查看实际完成了什么?
我调用构建 boost 的批处理文件(我启动 Visual Studio 2008 的 shell):
@echo off
cls
bjam --with-chrono --with-date_time --with-thread toolset=msvc-CEPlatformName variant=release threading=multi link=shared runtime-link=shared
这是位于 tools/build/v2 中的 user-config.jam
using msvc : CEPlatformName:
<compileflags>-D_CRT_SECURE_NO_WARNINGS
<compileflags>-D_CRT_SECURE_NO_DEPRECATE
<compileflags>-DBOOST_PROTO_MAX_ARITY=10
<compileflags>-DBOOST_MPL_CFG_NO_PREPROCESSED_HEADERS
<compileflags>-DBOOST_MPL_LIMIT_METAFUNCTION_ARITY=10
<compileflags>-D_WIN32_WCE=0x600
<compileflags>-DUNDER_CE
<compileflags>-DWINCE
<compileflags>-Dx86
<compileflags>-D_x86_
<compileflags>-D_UNICODE
<compileflags>-DUNICODE
<linkflags>/subsystem:windowsce,6.00
<linkflags>/MACHINE:X86
<linkflags>/NODEFAULTLIB:oldnames.lib
<linkflags>/NODEFAULTLIB:libc.lib
<linkflags>coredll.lib
<linkflags>corelibc.lib
<linkflags>ole32.lib
<linkflags>oleaut32.lib
<linkflags>uuid.lib
<setup>C:/boost_1_53_0/CEPlatformNameConfig.bat.bat
;
using stlport : 5.2 :
C:/celib/stlport/stlport :
C:/celib/stlport/bin
;
这是配置的脚本文件
@echo off
echo CONFIGURAZIONE PER LA COMPILAZIONE DI BOOST SU WINCE
echo.
rem ------------------------------------------------------------
set BOOST_DIR=c:\boost_1_53_0\boost
set PLATFORM=CEPlatformName
set TARGETCPU=x86
set OSVERSION=WCE600
set STLPORT_DIR=C:\celib\stlport
set STLPORT_INC=%STLPORT_DIR%\stlport
set STLPORT_LIB=%STLPORT_DIR%\bin\%PLATFORM%
rem ------------------------------------------------------------
if not %1==%&TARGETCPU% goto error
echo Setting Boost directory to %BOOST_DIR%
echo Setting OS Platform to %PLATFORM%
echo Setting target CPU to %TARGETCPU%
echo Setting OS Versione to %OSVERSION%
echo Setting STLPORT_INC to %STLPORT_INC%
echo Setting STLPORT_LIB to %STLPORT_LIB%
rem settin visual studio 2008 variable path
set SDKROOT=C:\Programmi\Windows CE Tools
set PATH=%VSINSTALLDIR%\VC\ce\bin\x86_cex86;%VSINSTALLDIR%\VC\bin;%VSINSTALLDIR%\Common7\IDE;%PATH%
set PLATFORMROOT=%SDKROOT%\%OSVERSION%\%PLATFORM%
set INCLUDE=%STLPORT_INC%;%PLATFORMROOT%\include\;%PLATFORMROOT%\include\%TARGETCPU%;%VCINSTALLDIR%\ce\include;%VCINSTALLDIR%\ce\atlmfc\include;%VSInstallDir%\SmartDevices\SDK\SQL Server\Mobile\v3.0;
set LIB=%STLPORT_LIB%;%PLATFORMROOT%\lib\%TARGETCPU%;%VCINSTALLDIR%\ce\ATLMFC\LIB\%TARGETCPU%;%VCINSTALLDIR%\ce\LIB\%TARGETCPU%
echo PATH at %PATH%
echo.
echo INCLUDE is %INCLUDE%
echo.
echo LIB is %LIB%
echo.
goto exit
:error
echo Invali Target CPU
goto exit
:exit
echo impostazioni avvenute con successo
编辑
似乎 user-config.jam 中的 compileflags 没有效果......或者更好的是 user-config.jam 似乎没有效果
编辑 2我发现了一个问题
using msvc : CEPlatformName :
<compileflags>-D WINCE
问题是这条指令没有定义任何东西。我也试过
using msvc : CEPlatformName :
<compileflags>/D_CRT_SECURE_NO_WARNINGS
但结果是一样的。
最佳答案
我找到问题了
我终于在自定义 x86 目标上构建了 boost.chrono boost.date_time boost_system 和 boost.thread fow Windows CE 6.0。
我以这种方式更改了 user-config.jam
using msvc : 9.0~CEPlatformName : "C:\...\cl.exe" :
<compileflags>-D_CRT_SECURE_NO_WARNINGS
<compileflags>-D_CRT_SECURE_NO_DEPRECATE
...
<setup>CEPlatformNameConfig.bat
;
通过这种方式,bjam 调用正确的批处理文件来配置构建系统。如果未指定编译器,bjam 将调用 vcvarsall.bat 并忽略编译器标志。
现在 bjam 调用是:
bjam ... toolset=msvc-9.0~CEPlatformName ...
正确定义 `x86` 和 `_X86_` 也很重要。请注意,`X86` 会导致 STLPort 为 ANSI C 库文件假定错误的目录。
但是我有一个关于 boost::this_thread::sleep_for() 函数的问题。我知道 boost 对此操作使用 TLS,并且我知道 TLS 并未在 WinCE 中完全实现。我可以用 Win32 库的一个简单的::Sleep() 替换这个函数。
我只确定 WinCE 具有 `TlsAlloc()`、`TlsFree()`、`TlsGetValue()` 和 `TlsSetValue()` 函数,并且至少具有用于 TLS 的 `TLS_MINIMUM_AVAILABLE` 插槽,至少定义为 64 .
关于c++ - 构建 boost C++ WinCE,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15906901/
我知道我可以使用函数 TouchCalibrate 设置校准。我不想使用我想通过注册表设置校准的 windows 功能。这工作正常,除了我不知道向操作系统发送什么消息以让它知道数据已更新。有谁知道我需
我正在尝试对一些没有日志记录的外部硬件进行一些调查。 为此,我使用 C 中的可变参数制作自己的小型记录器。这是我的代码: void write(const char* msg, ...) {
这有什么问题吗? if(( ::DeleteFile( L"IO.res"))== NULL) MessageBox(NULL,L"Error",L"OK",MB_OK); 我在同一目录中有 IO.r
我的设备 WinCE 5.0 有问题。我需要从资源播放声音。 BOOL PlayResource (int lpName) { BOOL bRtn; LPTSTR lpRes; HANDL
我正在用 C# 重新编写一个应用程序以在 Windows CE 上运行,但是,我的机器内存不足。 所以我需要分配适量的程序内存和存储内存。但是我不能在每次重启时手动分配它,然后我找到了 SetSyst
我是 CE 环境的新手,我正在为使用 Windows CE 5.0 (Motorola mc3000) 的带条码扫描器的移动数据终端创建应用程序。 我正在使用 VS 2008 并使用 C# 进行编程。
在桌面 Windows 中,我可以使用 windows.h 中的 SetUnhandledExceptionFilter 函数,但它在 WinCE 中不起作用。如何在 WinCE 中捕获未处理的异常?
我想监控安装在 Win 上的应用程序的性能CE设备。我复制了 cemgrc.exe、tcpipc.dll 和 cetstub.dll。 我使用 CEMGRC.EXE/S/T:TCPIPC.DLL/Q/
我应该安装 Windows Embedded CE 6.0 来开发 WinCE 应用程序吗? 我应该遵循哪些步骤来开发示例 WinCE c++ 应用程序? 如何将新应用程序复制到设备? 最佳答案 Sh
我想知道是否有类似于 mymobiler for Wince 5.0 的工具,我可以使用它从我的桌面控制设备。 我使用 mymobiler (v1.25) 但我相信它只控制在 WM5 及更高版本上运行
我不太擅长内联汇编,但计划在嵌入式项目中将其用于优化目的。由于我对此了解不多,因此需要一些帮助。 我拥有Win CE 6.0,带有ARM9,使用MS Visual Studio 2005(使用MFC)
在设备上使用 WinCE C# Forms 应用程序 .NET3.5 link 我可以很好地部署并运行表单应用程序。 我可以使用 Windows CE 测试工具包 link它会自动将自身部署到设备并运
我是 winCE 上 USB HID 的新手。谁能告诉我如何在 windowCE 环境下获取 vendor 和 product onreport。在窗口端有一个名为 SetupDiGetDeviceP
我正在使用 WinCE 6.0 设备进行串行通信。它有4个串口,我用的是2个,一个是RS232的,一个是RS485的。配置为 RS232 的串口工作正常,但 RS485 通信不工作 下面是代码, in
我有一个相机,可以返回原始图像,这些图像可以很容易地转换为位图,可以通过以下 C# 方法(我没有编写)保存到文件中。从各种来源,我确定图片每个像素有 8 位,可能是也可能不是灰度。 private v
我是 WinCE 编程的新手,我想为我们的应用程序创建自定义文件对话框,它的外观和感觉与默认的 Windows 文件对话框完全不同....我调查了很多 Flag 的值(value),但他们不值得...
正如标题所言。我想将鼠标指针移动到特定的 x,y 位置。默认位置是中心屏幕,我希望它位于右下角(即只是在屏幕外作为一种隐藏光标的解决方法)。 我可以看到在显示驱动程序源代码中有一个 MovePoint
我是 WinCE 应用程序编程的新手。但起步并不像想象的那么顺利。我找不到代码示例和可供学习的教程。我找不到一本关于 WinCE 编程的书。 winCE的所有库和头文件都和windows(WIN32)
我正在尝试 p/调用 SHBrowseForFolder API 以提示用户选择一个文件夹,我看到标题静态/标签字段 float 在树控件的顶部。 代码是从 article 下载的在网络上的多个位置引
我知道这是类似的问题,但对我没有帮助。我想在 x86 平台上为 Windows CE 6 构建 boost 。 我已经成功构建了 STLPort Release模式作为 WINCE 的共享库,我还添加
我是一名优秀的程序员,十分优秀!