На самом деле есть немного информации о людях, пытающихся создать библиотеки Boost для Windows CE, но никто не сообщил об успехах или даже не дал шагов, необходимых для этого. В двух последних выпусках (1.46 и 1.47) в примечаниях к выпуску упоминалось, что одним из их тестовых компиляторов был "Visual С++, 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 не содержит ни одного из них. Как работает ИТ?