Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: arm-wince-mingw32ce-g++ boost and qt
Форум на CrossPlatform.RU > Разработка > Инструменты разработчика
alexy
Вот решил тут начать писать для кпк и встолкнулся с проблеммой
Поставил arm - работает на ура (http://sourceforge.net/apps/trac/cegcc/wiki/Install, демонстративный файл собрал)
Хочу чтобы он собрал буст: сделал bjam -stools=g++ -sGCC_PERFIX=arm-cegcc-
буст собрался без ошибок
Скопировал все в нужные каталоги (include and lib), если я правильно понимаю, он от туда по умолчанию берет все
запускаю arm-wince-mingw32ce-g++ -static -static-libgcc hello.c -o HelloWorld.exe 2> error и... ничего
Когда подключаю в #include <boost/date_time.hpp> он начинает ругаться
Когда подключил program oprions, начал ругаться линкер - не может найти определение функции
А вот если просто, без буста, все окей

Как это сварить? Мне бы еще нужно сворганить Qt или виджеты - что легче :)
Кстати, после того как собрал буст, куда-то исчез arm-cegcc-g++ :)
Iron Bug
если ты хочешь статически прилинковать буст, то тебе нужно для начала собрать статический вариант буста:

bjam link=static бла-бла-бла

ну и прописывать библиотеки, которые ты линкуешь.
и если ты хочешь ответов на свои вопросы - приводи вывод компилера и линкера, а то не особо понятно, на что конкретно они ругаются.
alexy
то, что я собрал получилось libboost*.a
я скопировал это все в /opt/mingw32ce/arm-wince-mingw32ce/lib и include соответственно. от туда он брал другие *.a файлы, без дополнительного указания. Напимер файл ( http://sourceforge.net/apps/trac/cegcc/wiki/HelloWorld.c )
#include <windows.h>
int WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPWSTR lpCmdLine, int nCmdShow)
    {
    MessageBox(0, L"HelloWorld!", L"CeGCC says...", MB_OK);
    }


Компилится без предупреждений и ошибок. Никаких дополнительных указаний комапилятору я не давал. Все нужный файлы лежат у казанных каталогах, так что я просто туда добавил и заголовки буста.

Если после #include <windows.h> добавить #include <boost/date_time.h>
то будет - вот прилагаю файл error после

arm-wince-mingw32ce-g++ -static -static-libgcc hello_forum.c -o HelloWorld.exe 2> error

В std::cout не вывел ничего
пришлось переименовать в error.txt - форум не хочет брать error :)

alexy
о, сказал codeblock'y использовать этот компилятор (arm-wince-mingw32ce-*) и получилось интересно

он ругается, когда подключаю буст, что мол localtime не член std . Так оно вроде так и есть - http://www.cplusplus.com/reference/clibrary/ctime/localtime/

я сказал #include <time.h> и у меня прекрасно скомпилился для кпк от туда пример (с с++ сайта) только вот если его изменить на std::localtime он не будет работать.

Может дело в версии STL ?
alexy
Опана!
Покапался в файле ctime и нашел там

namespace std
{
  using ::clock_t;
  using ::time_t;
  using ::tm;

#ifndef __MINGW32CE__
  using ::clock;
#endif
  using ::difftime;
#ifdef __MINGW32CE__ // в оригинале было #ifndef
  using ::mktime;
  using ::time;
  using ::asctime;
  using ::ctime;
  using ::gmtime;
  using ::localtime;
  using ::strftime;
#endif
}


Заменил там как указанно и - заработало :)
Только я не понял - wince религия не позволяет использовать std::localtime ??

Опана!
Покапался в файле ctime и нашел там

namespace std
{
  using ::clock_t;
  using ::time_t;
  using ::tm;

#ifndef __MINGW32CE__
  using ::clock;
#endif
  using ::difftime;
#ifdef __MINGW32CE__ // в оригинале было #ifndef
  using ::mktime;
  using ::time;
  using ::asctime;
  using ::ctime;
  using ::gmtime;
  using ::localtime;
  using ::strftime;
#endif
}


Заменил там как указанно и - заработало :)
Только я не понял - wince религия не позволяет использовать std::localtime ??
alexy
А как мне теперь сварить wxwdigets и soci ??

Я сейчас мучаюсь с виджетами - делаю как написано для кроскомпилирования, почему-то начинает искать то errno.h то locale.h. у меня есть эти файлы, только там написанно что из нельзя включать и стоит деректива #include_next ... а больше у меня их и нет. Там говориться, что мол если приложение правильно для wince то оно не будет включать errno.h

Кажется виджеты считают что компиляться для пальмы. как указать платформу точно? build=что ?
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Форум IP.Board © 2001-2024 IPS, Inc.