На самом деле есть немного информации о людях, пытающихся создать библиотеки Boost для Windows CE, но никто не сообщил об успехе и даже не рассказал о шагах, необходимых для этого. В двух последних выпусках (1.46 и 1.47) в примечаниях к выпуску упоминалось, что одним из их тестовых компиляторов был «Visual C ++, Windows Mobile 5 с STLport: 9.0», что, по-видимому, означает, что успех достигнут (в качестве примечания) данный компилятор интересен, поскольку последняя версия STLPort, которую я смог загрузить, - это 5.2.1. Я что-то упустил?).
Посты, которые я нашел, похоже, вращаются вокруг файла, содержащегося здесь: http://www.boost.org/development/tests/trunk/VeecoFTC.html. Дело в том, что я, честно говоря, не знаю, как его использовать. Мне удалось собрать STLPort для Windows CE, но, следуя руководству по началу работы с 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 для Boost: 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 - проблема в том, что 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 не содержит ничего из этого. Как это работает?