實際上,有些人試圖爲Windows CE構建Boost庫,但沒有人報告過成功,甚至沒有提供這樣做所需的步驟。隨着最新發布的兩個版本(1.46和1.47)的發佈說明,他們的測試編譯器之一是「Visual C++,Windows Mobile 5,STLport:9.0」,這似乎意味着已經取得了成功(作爲附註給出的編譯器很有趣,因爲我已經能夠下載的最新STLPort是5.2.1。我是否錯過了一些東西?)。用於Windows CE的Compile Boost 1.47
我發現的帖子似乎圍繞着這裏包含的文件:http://www.boost.org/development/tests/trunk/VeecoFTC.html。事情是,我真的不知道如何使用它。我能夠爲Windows CE構建STLPort,但是按照Boost入門指南(http://www.boost.org/doc/libs/1_47_0/more/getting_started/windows.html),我陷入了Boost.Build階段。我現在需要配置爲CE編譯嗎?我只是不知道要採取什麼措施,並希望得到一些指導。
這是到目前爲止,我遵循的步驟:
- 編譯STLPort的用於Windows CE(文檔是相當不錯的,這並不能證明太難了)。
- 根據入門指南安裝Boost.Build。由於bootstrap.bat文件似乎特定於「ntx86」和「ntx86_64」,所以在這一步中我有點不穩定。我已經搞砸了嗎?
在這一點上,假設我已經做正確的事情,我需要的東西跑B2像
b2 --build-dir=build-directory toolset=toolset-name --build-type=complete stage
我想我的生成目錄是我用Boost.Build前綴,構建類型和階段將保持原樣,但我不知道要使用的工具集名稱。 VeecoFTC文件有多個msvc和stlport條目。我刪除這並不涉及到兩個條目「WM5,」但是當我用下面的命令編譯
b2 --build-dir=C:\boost-build toolset=msvc --build-type=complete stage
我得到像一堆錯誤:
compile-c-c++ C:\boost-build\boost\bin.v2\libs\regex\build\msvc-9.0~wm5~stlport5.2\debug\threading-multi\has_icu_test.obj
The system cannot find the path specified.
事實上,該文件確實不存在,但has_icu_test.obj.rsp存在。我錯過了什麼嗎?我是否在正確的軌道上?
UPDATE:
因爲我不能讓Boost.Build工作,我得到了Boost.Build郵件列表上沒有愛,我已經轉移到嘗試的CMake構建系統提升:http://gitorious.org/boost/cmake。我與CEgcc結合使用這(我更熟悉Linux比Windows)和我遇到以下錯誤:
boost/config/requires_threads.hpp:47:5: error: #error "Compiler threading support is not turned on. Please set the correct command line options for threading: -pthread (Linux), -pthreads (Solaris) or -mthreads (Mingw32)"
-mthreads是C的一部分,CXX flags--問題是BOOST_PLATFORM_CONFIG沒有被boost/config/select_platform_config.hpp定義。應該爲Windows CE定義什麼?我想它應該是boost/config/platform/win32.hpp(然後將定義BOOST_HAS_WINTHREADS,這將解決上述錯誤)。當select_platform_config.hpp似乎無法處理Windows CE情況時,發行說明如何宣稱這可以工作?如果BOOST_PLATFORM_CONFIG的確需要boost/config/platform/win32.hpp,那麼我需要定義_WIN32,WIN32或WIN32。我的第一反應是這些都不應該用於編譯CE。此外,VeecoFTC文件不包含任何這些。它是如何工作的?
你真的使用任何需要編譯的Boost庫嗎? Boost中有很多有用的庫不需要構建。 – Daemin
對,您實際使用哪些部分的助力?我個人只是使用標準功能的boost頭文件,如STATIC_ASSERT和boost :: mpl,並且這些東西在WinCE/VC++中工作正常。 Boost是一個巨大的圖書館藏書;當然你不需要成功編譯所有的東西。 – Qwertie
關於「Visual C++,Windows Mobile 5,STLport:9.0」,這是VC++ 9,STLport爲WM5交叉編譯。是的,這看起來很有趣。 –