![]() |
Модераторы: Alexeis |
![]() ![]() ![]() |
|
Brodyaga |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 599 Регистрация: 19.1.2008 Репутация: нет Всего: 2 |
Всем доброго времени суток! Решил использовать в качестве БД для телефона SQLite... Но под WinCE никак скомпилить не могу... Исходники качал отсюда. При компиляции выдаёт ошибки типа...:
Не понимаю.. как эти исходники под Win CE, если даже константу FILENAME_MAX он найти не может?! (в Win32 она определена в stdio.h) Так же нашёл в инете статейку.. и по ней тоже пробовал.. Скомпилилось вроде всё норм, но при подключению полученной lib'ы к проекту и вызове функций также сыплюца ошибки о том, что не определенна какаято переменная, нашёл в исходниках с помощью каких макросов она создаёца, но вот в мкрос надо передать значению её.. а где его взять?! вообщем уже совсем запутался.. Помогите пожалуйста! ОЧЕНЬ НАДО! :( |
|||
|
||||
Alexeis |
|
|||
![]() Амеба ![]() Профиль Группа: Админ Сообщений: 11743 Регистрация: 12.10.2005 Где: Зеленоград Репутация: 4 Всего: 459 |
Brodyaga, насколько я помню для компиляции исходников под CE нужен gcc или еще какой-то гнутый компилятор. Там часть сорцов генериться на лету при помощи make файла. Но у них есть еще скрытые сорцы уже готовые. Я качал такой пак и компилировал его в Билдере. Получилась вполне рабочая Dll ина. Для CE есть нюансы. Функция CreateFile работает не с файлом во флеше, а с его образом в ОЗУ, т.о. в памяти будет висеть вся база, а сам движок ничуть не ответственен за то чтобы сохранять базу во флеш. Потому ИМХО, нужно переписать файловый интерфейс под работу с конкретной флеш памятью. Для этого нужно передать в конфигурационную функцию структуру с указателями на функции для работы с файлами. После этого перекомпилировать. Сейчас под рукой нет исходников, на работе остались.
-------------------- Vit вечная память. Обсуждение действий администрации форума производятся только в этом форуме гениальность идеи состоит в том, что ее невозможно придумать |
|||
|
||||
Brodyaga |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 599 Регистрация: 19.1.2008 Репутация: нет Всего: 2 |
Спасибо за ответ! Завтра скинуть сможете??? На работе посмотрю, поковыряю!
|
|||
|
||||
t_rex |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 143 Регистрация: 11.10.2006 Где: Украина, г. Запор ожье Репутация: 1 Всего: 7 |
Ты б хоть build log выложил, а то телепаты в отпуске, а мы тут без них хз что там за проблема. --------------------
Жизнь не MultiEdit. Undo не сделаешьКросс-платформенное программирование с wxWidgetsБлог о программировании для мобильных устройтсвGoogle Android для программистов и пользователей |
|||
|
||||
Alexeis |
|
|||
![]() Амеба ![]() Профиль Группа: Админ Сообщений: 11743 Регистрация: 12.10.2005 Где: Зеленоград Репутация: 4 Всего: 459 |
Значит ссылка такая http://www.sqlite.org/sqlite-source-3_6_7.zip На момент скачки версия может измениться, но архив продолжают заливать, потому если файл не найден попробуйте другое имя в формате http://www.sqlite.org/sqlite-source-x_y_z.zip т.е. 3.67 -> 3_6_7 . 4я цифра в имени архива не участвует. Добавлено через 5 минут и 15 секунд Если, в последствии будет желание открыть эту базу на PC, то удобно использовать odbc драйвер. Например при помощи него в билдере можно приконектиться к базе используя ADO. http://www.ch-werner.de/sqliteodbc/sqliteodbc.exe (http://www.ch-werner.de/sqliteodbc/) Добавлено через 9 минут и 46 секунд Хотя не, на счет того что скрыта ссылка пожалуй я не прав, нашел таки ее на http://www.sqlite.org/download.html Последняя ссылка в разделе "Source Code" -------------------- Vit вечная память. Обсуждение действий администрации форума производятся только в этом форуме гениальность идеи состоит в том, что ее невозможно придумать |
|||
|
||||
Brodyaga |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 599 Регистрация: 19.1.2008 Репутация: нет Всего: 2 |
Дык для Win CE же в другом месте лежит... тута или я ошибаюсь и надо всётаки брать то, что вы указали?? |
|||
|
||||
Alexeis |
|
|||
![]() Амеба ![]() Профиль Группа: Админ Сообщений: 11743 Регистрация: 12.10.2005 Где: Зеленоград Репутация: 4 Всего: 459 |
Не знаю даже, они какие-то урезанные и не очень свежие "sqlite-wince-3.3.5". Мне кажется если адаптировать, то лучше самые свежие. -------------------- Vit вечная память. Обсуждение действий администрации форума производятся только в этом форуме гениальность идеи состоит в том, что ее невозможно придумать |
|||
|
||||
Brodyaga |
|
||||||||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 599 Регистрация: 19.1.2008 Репутация: нет Всего: 2 |
t_rex,
Извините.. я думал они вернулись из отпуска.. ну да ладно, ошибки вот такого плана
Это так он ругаеца на вызов функции sqlite3_open.. Заходим в исходный файл и видим, что эта фунция не что иное как...
А вот те самые макросы из исходников, которые создают эту переменную:
А вот где взять это загадочное v... вот в чём вопрос... Напоминаю, это способ представленный в этой статье. Потому что в сущности то мне под Win Mobile нужно. Это сообщение отредактировал(а) Brodyaga - 23.12.2008, 22:03 |
||||||||
|
|||||||||
Alexeis |
|
|||
![]() Амеба ![]() Профиль Группа: Админ Сообщений: 11743 Регистрация: 12.10.2005 Где: Зеленоград Репутация: 4 Всего: 459 |
Brodyaga, думаю дело в том что не определены некоторые дефайны, от того у компилятора проблемы с именами.
-------------------- Vit вечная память. Обсуждение действий администрации форума производятся только в этом форуме гениальность идеи состоит в том, что ее невозможно придумать |
|||
|
||||
t_rex |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 143 Регистрация: 11.10.2006 Где: Украина, г. Запор ожье Репутация: 1 Всего: 7 |
Да, здесь, похоже, проблема именно в директивах компилятора. Думаю, проще всего было бы открыть исходник SQLite Amalgamation в Visual Studio и посмотреть почему этот код не включается в сборку, там должны быть условия в коде вида или #ifdef _SOME_MACRO или #if defined(_SOME_MACRO) и опытным путем определить какие из них нужно подобавлять в C/C++ -> Preprocessor
--------------------
Жизнь не MultiEdit. Undo не сделаешьКросс-платформенное программирование с wxWidgetsБлог о программировании для мобильных устройтсвGoogle Android для программистов и пользователей |
|||
|
||||
Brodyaga |
|
||||||||||||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 599 Регистрация: 19.1.2008 Репутация: нет Всего: 2 |
Есть в коде условия такого вида!
Но не в этом суть... причом тут дефайны это же макросы которые нужно вызывать самому... Например если я в коде вызываю макрос
,то описанные ошибки пропадают... но при обращениям к функциям выскакивают другие так как этот макрос лишь инициализирует переменную sqlite3_api присваивая ей 0, а не реальное значение... Реальное же значение передаётся макросу
Но вот где его взять(реальное значение в смысле)?!? Если бы я смог инициализировать переменную sqlite3_api, то и дефайны типа...
заработали бы... Но вот как это сделать...??? |
||||||||||||
|
|||||||||||||
Alexeis |
|
|||
![]() Амеба ![]() Профиль Группа: Админ Сообщений: 11743 Регистрация: 12.10.2005 Где: Зеленоград Репутация: 4 Всего: 459 |
Не всегда, есть дефайны условной компиляции, которые определяют какой код будет компилироваться, а какой нет. Функция с одним т тем же именем и параметрами может иметь несколько реализаций, зависящих от возможности ОС. Например если нет возможности синхронизировать доступ к файлу на диске, то часть кода ответственную за этот механизм можно исключить из проекта. В проекте SQLLite есть набор фич, которые можно исключить из работы и тем самым упростить движок. Если не компиляться те исходники советую взять полные, те что я указал. У меня они скомпилировались правильно, может и у вас заработают без ошибок. В них тоже есть директивы специально для CE. И из них можно скомпилировать версию для CE. -------------------- Vit вечная память. Обсуждение действий администрации форума производятся только в этом форуме гениальность идеи состоит в том, что ее невозможно придумать |
|||
|
||||
Brodyaga |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 599 Регистрация: 19.1.2008 Репутация: нет Всего: 2 |
В тех исходниках, что лежат на официальном сайте компилятор не может найти tcl.h и io.h. Первый я нашёл в инете, а второй для WinCE хз где... ПОделитесь если есть? И что вы из этих исходников делали? lib или dll ?
|
|||
|
||||
Alexeis |
|
|||
![]() Амеба ![]() Профиль Группа: Админ Сообщений: 11743 Регистрация: 12.10.2005 Где: Зеленоград Репутация: 4 Всего: 459 |
Я делал Dll, но не для CE. Думаю его можно сделать самому по аналогии с виндовым вариантом или вообще взять от обычного видового, там же основные функции совпадают, тока в других Dll инах. Напильник в руки ![]() -------------------- Vit вечная память. Обсуждение действий администрации форума производятся только в этом форуме гениальность идеи состоит в том, что ее невозможно придумать |
|||
|
||||
Brodyaga |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 599 Регистрация: 19.1.2008 Репутация: нет Всего: 2 |
Тоесть вы вручную подписывали к функциям export чтоли и т.д.??? так как в исходниках этого нет помоему...
|
|||
|
||||
![]() ![]() ![]() |
Правила форума "Программирование мобильных устройств" | |
|
Раздел посвящен программированию мобильных устройств. Все остальные вопросы по мобильным устройствам (КПК, смартфоны, телефоны, фотоаппараты и т.п), |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Платформы Windows Mobile и Windows Embedded | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |