crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

 
Ответить в данную темуНачать новую тему
> arm-wince-mingw32ce-g++ boost and qt, Как это все сварить?
alexy
  опции профиля:
сообщение 5.5.2011, 16:26
Сообщение #1


Студент
*

Группа: Участник
Сообщений: 44
Регистрация: 4.8.2010
Пользователь №: 1931

Спасибо сказали: 0 раз(а)




Репутация:   0  


Вот решил тут начать писать для кпк и встолкнулся с проблеммой
Поставил 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
  опции профиля:
сообщение 5.5.2011, 19:44
Сообщение #2


Профессионал
*****

Группа: Модератор
Сообщений: 1611
Регистрация: 6.2.2009
Из: Yekaterinburg
Пользователь №: 533

Спасибо сказали: 219 раз(а)




Репутация:   12  


если ты хочешь статически прилинковать буст, то тебе нужно для начала собрать статический вариант буста:

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

ну и прописывать библиотеки, которые ты линкуешь.
и если ты хочешь ответов на свои вопросы - приводи вывод компилера и линкера, а то не особо понятно, на что конкретно они ругаются.

Сообщение отредактировал Iron Bug - 5.5.2011, 19:46
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
alexy
  опции профиля:
сообщение 5.5.2011, 20:37
Сообщение #3


Студент
*

Группа: Участник
Сообщений: 44
Регистрация: 4.8.2010
Пользователь №: 1931

Спасибо сказали: 0 раз(а)




Репутация:   0  


то, что я собрал получилось 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 :)


Прикрепленные файлы
Прикрепленный файл  error.txt ( 37.72 килобайт ) Кол-во скачиваний: 701
 
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
alexy
  опции профиля:
сообщение 6.5.2011, 15:33
Сообщение #4


Студент
*

Группа: Участник
Сообщений: 44
Регистрация: 4.8.2010
Пользователь №: 1931

Спасибо сказали: 0 раз(а)




Репутация:   0  


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

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

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

Может дело в версии STL ?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
alexy
  опции профиля:
сообщение 6.5.2011, 17:32
Сообщение #5


Студент
*

Группа: Участник
Сообщений: 44
Регистрация: 4.8.2010
Пользователь №: 1931

Спасибо сказали: 0 раз(а)




Репутация:   0  


Опана!
Покапался в файле 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
  опции профиля:
сообщение 7.5.2011, 12:33
Сообщение #6


Студент
*

Группа: Участник
Сообщений: 44
Регистрация: 4.8.2010
Пользователь №: 1931

Спасибо сказали: 0 раз(а)




Репутация:   0  


А как мне теперь сварить wxwdigets и soci ??

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

Кажется виджеты считают что компиляться для пальмы. как указать платформу точно? build=что ?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 28.3.2024, 22:08