Объектные файлы SQLite для линкуса?

Вопросы программирования и использования среды Lazarus.

Модератор: Модераторы

Объектные файлы SQLite для линкуса?

Сообщение MaratIsk » 04.07.2013 15:52:14

для компиляции в исполняемый файл приложения
MaratIsk
постоялец
 
Сообщения: 121
Зарегистрирован: 20.08.2009 18:15:20

Re: Объектные файлы SQLite для линкуса?

Сообщение WAYFARER » 04.07.2013 17:27:14

Есть ли в этом смысл? Как правило SQLite в 99% случаем уже включен в дистрибутив, т.к. используется множеством приложений для хранения данных и настроек. В ином же случае добавить к пакету вашего приложения sqlite в зависимости.
Аватара пользователя
WAYFARER
энтузиаст
 
Сообщения: 537
Зарегистрирован: 09.10.2009 00:00:04
Откуда: г. Курган

Re: Объектные файлы SQLite для линкуса?

Сообщение MaratIsk » 05.07.2013 18:10:53

иногда не включен
вот и не хочется от этого зависеть
MaratIsk
постоялец
 
Сообщения: 121
Зарегистрирован: 20.08.2009 18:15:20

Re: Объектные файлы SQLite для линкуса?

Сообщение WAYFARER » 06.07.2013 16:50:29

Исходники Sqlite можно взять на http://www.sqlite.org/download.html.
Если вам даже удастся статически прилинковать sqlite, то компоненты, которые вы используете для работы с sqlite работать не будут. Вам придется изучить документацию по sqlite и её API. Так же нужно будет учесть все зависимости sqlite, так же нужно будет учесть все зависимости библиотек от которых зависит sqlite..и т.д.

Это linux, здесь так не делается.
Аватара пользователя
WAYFARER
энтузиаст
 
Сообщения: 537
Зарегистрирован: 09.10.2009 00:00:04
Откуда: г. Курган

Re: Объектные файлы SQLite для линкуса?

Сообщение MaratIsk » 06.07.2013 17:56:32

вот как это выглядит для windows
полагаю сделать также для линукс возможно
У вас нет необходимых прав для просмотра вложений в этом сообщении.
MaratIsk
постоялец
 
Сообщения: 121
Зарегистрирован: 20.08.2009 18:15:20

Re: Объектные файлы SQLite для линкуса?

Сообщение WAYFARER » 06.07.2013 23:36:09

Я не говорю, что это невозможно.
Пошаговая инструкция:
Открываем терминал
Код: Выделить всё
$ wget http://www.sqlite.org/2013/sqlite-autoconf-3071700.tar.gz
$ tar xvzf sqlite-autoconf-3071700.tar.gz
$ cd sqlite-autoconf-3071700
$ ./configure -enable-static
$ make


Получаем sqlite3.o, который кладем в папку с проектом, например.
В начале модуля добавить
Код: Выделить всё
{$l sqlite3.o}   

Скомпилировать проект.
sqlite прилинкована.
Аватара пользователя
WAYFARER
энтузиаст
 
Сообщения: 537
Зарегистрирован: 09.10.2009 00:00:04
Откуда: г. Курган

Re: Объектные файлы SQLite для линкуса?

Сообщение MaratIsk » 23.01.2014 11:19:17

:cry:

Параметры были изменены, перекомпиляция с очисткой (ключ -B)
/usr/bin/ld: warning: link.res contains output sections; did you forget -T?
sqlite3.obj: In function `sqlite3AtoF':
/home/maratisk/Apps/sqlite-autoconf-3080200/sqlite3.c:21734: undefined reference to `__moddi3'
/home/maratisk/Apps/sqlite-autoconf-3080200/sqlite3.c:21734: undefined reference to `__divdi3'
/home/maratisk/Apps/sqlite-autoconf-3080200/sqlite3.c:21734: undefined reference to `__moddi3'
sqlite3.obj: In function `pagerPagecount':
/home/maratisk/Apps/sqlite-autoconf-3080200/sqlite3.c:42266: undefined reference to `__divdi3'
sqlite3.obj: In function `memjrnlRead':
/home/maratisk/Apps/sqlite-autoconf-3080200/sqlite3.c:74841: undefined reference to `__moddi3'
sqlite3.obj: In function `numberOfCachePages':
/home/maratisk/Apps/sqlite-autoconf-3080200/sqlite3.c:37016: undefined reference to `__divdi3'
sqlite3.obj: In function `computeYMD':
/home/maratisk/Apps/sqlite-autoconf-3080200/sqlite3.c:14494: undefined reference to `__divdi3'
sqlite3.obj: In function `computeHMS':
/home/maratisk/Apps/sqlite-autoconf-3080200/sqlite3.c:14516: undefined reference to `__moddi3'
sqlite3.obj: In function `fileWriterInit':
/home/maratisk/Apps/sqlite-autoconf-3080200/sqlite3.c:74081: undefined reference to `__moddi3'
sqlite3.obj: In function `numberOfCachePages':
/home/maratisk/Apps/sqlite-autoconf-3080200/sqlite3.c:37016: undefined reference to `__divdi3'
sqlite3.obj: In function `sqlite3PagerSetPagesize':
/home/maratisk/Apps/sqlite-autoconf-3080200/sqlite3.c:42735: undefined reference to `__divdi3'
sqlite3.obj: In function `localtimeOffset':
/home/maratisk/Apps/sqlite-autoconf-3080200/sqlite3.c:14648: undefined reference to `__divdi3'
sqlite3.obj: In function `vdbeSorterIterRead':
/home/maratisk/Apps/sqlite-autoconf-3080200/sqlite3.c:73640: undefined reference to `__moddi3'
sqlite3.obj: In function `vdbeSorterIterVarint':
/home/maratisk/Apps/sqlite-autoconf-3080200/sqlite3.c:73716: undefined reference to `__moddi3'
sqlite3.obj: In function `sqlite3VXPrintf':
/home/maratisk/Apps/sqlite-autoconf-3080200/sqlite3.c:20116: undefined reference to `__umoddi3'
/home/maratisk/Apps/sqlite-autoconf-3080200/sqlite3.c:20117: undefined reference to `__udivdi3'
/home/maratisk/Apps/sqlite-autoconf-3080200/sqlite3.c:20103: undefined reference to `__umoddi3'
/home/maratisk/Apps/sqlite-autoconf-3080200/sqlite3.c:20104: undefined reference to `__udivdi3'
/home/maratisk/Apps/sqlite-autoconf-3080200/sqlite3.c:20104: undefined reference to `__umoddi3'
sqlite3.obj: In function `unixTruncate':
/home/maratisk/Apps/sqlite-autoconf-3080200/sqlite3.c:26909: undefined reference to `__divdi3'
sqlite3.obj: In function `parseModifier':
/home/maratisk/Apps/sqlite-autoconf-3080200/sqlite3.c:14728: undefined reference to `__divdi3'
/home/maratisk/Apps/sqlite-autoconf-3080200/sqlite3.c:14762: undefined reference to `__divdi3'
/home/maratisk/Apps/sqlite-autoconf-3080200/sqlite3.c:14762: undefined reference to `__moddi3'
/home/maratisk/Apps/sqlite-autoconf-3080200/sqlite3.c:14830: undefined reference to `__divdi3'
sqlite3.obj: In function `strftimeFunc':
/home/maratisk/Apps/sqlite-autoconf-3080200/sqlite3.c:15144: undefined reference to `__divdi3'
/home/maratisk/Apps/sqlite-autoconf-3080200/sqlite3.c:15144: undefined reference to `__moddi3'
/home/maratisk/Apps/sqlite-autoconf-3080200/sqlite3.c:15138: undefined reference to `__divdi3'
/home/maratisk/Apps/sqlite-autoconf-3080200/sqlite3.c:15117: undefined reference to `__divdi3'
/home/maratisk/Apps/sqlite-autoconf-3080200/sqlite3.c:15120: undefined reference to `__divdi3'
/home/maratisk/Apps/sqlite-autoconf-3080200/sqlite3.c:15120: undefined reference to `__moddi3'
sqlite3.obj: In function `statGet':
/home/maratisk/Apps/sqlite-autoconf-3080200/sqlite3.c:82476: undefined reference to `__udivdi3'
sqlite3.obj: In function `memjrnlWrite':
/home/maratisk/Apps/sqlite-autoconf-3080200/sqlite3.c:74877: undefined reference to `__moddi3'
sqlite3.obj: In function `rtreeBestIndex':
/home/maratisk/Apps/sqlite-autoconf-3080200/sqlite3.c:142564: undefined reference to `__divdi3'
sqlite3.obj: In function `journalHdrOffset':
/home/maratisk/Apps/sqlite-autoconf-3080200/sqlite3.c:40398: undefined reference to `__divdi3'
sqlite3.obj: In function `backupOnePage':
/home/maratisk/Apps/sqlite-autoconf-3080200/sqlite3.c:59154: undefined reference to `__divdi3'
/home/maratisk/Apps/sqlite-autoconf-3080200/sqlite3.c:59161: undefined reference to `__moddi3'
/home/maratisk/Apps/sqlite-autoconf-3080200/sqlite3.c:59159: undefined reference to `__moddi3'
sqlite3.obj: In function `sqlite3WalFrames':
/home/maratisk/Apps/sqlite-autoconf-3080200/sqlite3.c:49129: undefined reference to `__divdi3'
sqlite3.obj: In function `journalHdrOffset':
/home/maratisk/Apps/sqlite-autoconf-3080200/sqlite3.c:40398: undefined reference to `__divdi3'
sqlite3.obj: In function `pager_playback':
/home/maratisk/Apps/sqlite-autoconf-3080200/sqlite3.c:41854: undefined reference to `__divdi3'
/home/maratisk/Apps/sqlite-autoconf-3080200/sqlite3.c:41835: undefined reference to `__divdi3'
sqlite3.obj: In function `pagerPlaybackSavepoint':
/home/maratisk/Apps/sqlite-autoconf-3080200/sqlite3.c:42442: undefined reference to `__divdi3'
sqlite3.obj:/home/maratisk/Apps/sqlite-autoconf-3080200/sqlite3.c:40398: more undefined references to `__divdi3' follow
sqlite3.obj: In function `vdbeSorterIterInit':
/home/maratisk/Apps/sqlite-autoconf-3080200/sqlite3.c:73793: undefined reference to `__moddi3'
sqlite3.obj: In function `sqlite3VdbeExec':
/home/maratisk/Apps/sqlite-autoconf-3080200/sqlite3.c:67951: undefined reference to `__moddi3'
/home/maratisk/Apps/sqlite-autoconf-3080200/sqlite3.c:67925: undefined reference to `__moddi3'
/home/maratisk/Apps/sqlite-autoconf-3080200/sqlite3.c:67920: undefined reference to `__divdi3'
sqlite3.obj: In function `fts3MatchinfoValues':
/home/maratisk/Apps/sqlite-autoconf-3080200/sqlite3.c:139879: undefined reference to `__divdi3'
sqlite3.obj: In function `fts3EvalAverageDocsize':
/home/maratisk/Apps/sqlite-autoconf-3080200/sqlite3.c:128216: undefined reference to `__divdi3'
/home/maratisk/Apps/sqlite-autoconf-3080200/sqlite3.c:128216: undefined reference to `__divdi3'
sqlite3.obj: In function `sqlite3Fts3Incrmerge':
/home/maratisk/Apps/sqlite-autoconf-3080200/sqlite3.c:138019: undefined reference to `__moddi3'
/home/maratisk/Apps/sqlite-autoconf-3080200/sqlite3.c:138019: undefined reference to `__moddi3'
sqlite3.obj: In function `fcntlSizeHint':
/home/maratisk/Apps/sqlite-autoconf-3080200/sqlite3.c:26992: undefined reference to `__divdi3'
project1.lpr(20,1) Error: Error while linking
project1.lpr(20,1) Fatal: There were 1 errors compiling module, stopping
MaratIsk
постоялец
 
Сообщения: 121
Зарегистрирован: 20.08.2009 18:15:20

Re: Объектные файлы SQLite для линкуса?

Сообщение Лекс Айрин » 23.01.2014 11:25:19

MaratIsk, так Вам об этом и говорили. Компилятор просто не понял что ему подсунули. Имхо, нужен модуль-обертка.
Аватара пользователя
Лекс Айрин
долгожитель
 
Сообщения: 5723
Зарегистрирован: 19.02.2013 16:54:51
Откуда: Волгоград

Re: Объектные файлы SQLite для линкуса?

Сообщение MaratIsk » 23.01.2014 12:26:59

причем тут модуль обертка???
просто не хватает каких-то библиотек
вот каких?!

вот как это сделано у меня в винде

{$l libsqlite3.a}
{$linklib libkernel32.a}
{$linklib libmsvcrt.a}
{$linklib libgcc.a}

Добавлено спустя 3 часа 37 минут 34 секунды:
нашел
тоже следовало прилинковать libgcc.a

Добавлено спустя 1 час 33 минуты 15 секунд:
собственно цель состояла в том, чтобы сделать приложение не зависящее от наличия/отсутствия sqlite в linux (редкое гуано, на мой взгляд, в смысле ос)
MaratIsk
постоялец
 
Сообщения: 121
Зарегистрирован: 20.08.2009 18:15:20

Re: Объектные файлы SQLite для линкуса?

Сообщение Лекс Айрин » 24.01.2014 01:57:45

MaratIsk писал(а):собственно цель состояла в том, чтобы сделать приложение не зависящее от наличия/отсутствия sqlite в linux (редкое гуано, на мой взгляд, в смысле ос)

бесполезная работа. Проще действительно добавить его в зависимости программы. Интернет для обновления/установки проги всегда можно найти.

(странно, а мой друг переодически ставит это гуано, чтобы отдохнуть от глюков и тормозов винды. При том, что он геймер.)
Аватара пользователя
Лекс Айрин
долгожитель
 
Сообщения: 5723
Зарегистрирован: 19.02.2013 16:54:51
Откуда: Волгоград

Re: Объектные файлы SQLite для линкуса?

Сообщение Vadim » 24.01.2014 02:58:53

Для спаравки: гуано - это именно то, что делает почву ценной и плодородной. ;-)
Vadim
долгожитель
 
Сообщения: 4112
Зарегистрирован: 05.10.2006 08:52:59
Откуда: Красноярск

Re: Объектные файлы SQLite для линкуса?

Сообщение MaratIsk » 24.01.2014 19:31:57

угу
он же не зарабатывает свой хлеб программированием

Добавлено спустя 1 минуту 58 секунд:
Vadim писал(а):Для спаравки: гуано - это именно то, что делает почву ценной и плодородной. ;-)


словоблудие для программиста
MaratIsk
постоялец
 
Сообщения: 121
Зарегистрирован: 20.08.2009 18:15:20

Re: Объектные файлы SQLite для линкуса?

Сообщение Лекс Айрин » 24.01.2014 19:58:26

MaratIsk писал(а):он же не зарабатывает свой хлеб программированием

MaratIsk писал(а):он же не зарабатывает свой хлеб программированием


угу... ад программиста под виндой -- недокументированные функции.
Аватара пользователя
Лекс Айрин
долгожитель
 
Сообщения: 5723
Зарегистрирован: 19.02.2013 16:54:51
Откуда: Волгоград

Re: Объектные файлы SQLite для линкуса?

Сообщение MaratIsk » 24.01.2014 20:35:29

поскольку заявленная тема не про ОС не буду продолжать

Добавлено спустя 10 минут:
Лекс Айрин писал(а):
MaratIsk писал(а):он же не зарабатывает свой хлеб программированием

MaratIsk писал(а):он же не зарабатывает свой хлеб программированием


угу... ад программиста под виндой -- недокументированные функции.


а ты документированные изучил???
MaratIsk
постоялец
 
Сообщения: 121
Зарегистрирован: 20.08.2009 18:15:20

Re: Объектные файлы SQLite для линкуса?

Сообщение Лекс Айрин » 24.01.2014 21:15:24

MaratIsk писал(а):поскольку заявленная тема не про ОС не буду продолжать

MaratIsk писал(а):а ты документированные изучил???


??
Аватара пользователя
Лекс Айрин
долгожитель
 
Сообщения: 5723
Зарегистрирован: 19.02.2013 16:54:51
Откуда: Волгоград


Вернуться в Lazarus

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 225

Рейтинг@Mail.ru
cron