
Итак, кросс компиляция работает замечательно, но остался еще один момент - динамические библиотеки: попробовал кросс-компилировать своей проект из Windows в Linux и получил ошибку компоновщика - не найдена библиотека sqlite3:
D:\sys\bin\i386-linux-ld.exe: cannot find -lsqlite3
Насколько я знаю, в Linux используется два типа библиотек: собственно библиотека (используемая для исполнения) и девелоперская (используемая для компиляции).
В связи с этим пару вопросов:
1. Зачем вообще нужно это деление?
2. Можно ли девелоперскую библиотеку заменить на обычную?
3. Можно ли по обычной библиотеке получить девелоперскую (как например делает implib из TASM, если не ошибаюсь)?
4. Какие проблемы могут быть из-за различий версий библиотек и их имен (н-р, я скачал sqlite-3.3.17.so, чую, что ее нужно как-то переименовать, хотя бы добавить префикс lib...)
Добавлено
Переименовал sqlite-3.3.17.so в libsqlite3.so и положил в папку с проектом. Компоновщик ее нашел, но не нашел (где бы он ее взял) libc.so.6 - не уже ли нужно все зависимые библиотеки иметь?
Попробовал указать опцию -st (чтобы отменить компоновку, и сгенерировать скрипт для компоновки на целевой машине) посморел *.res файл, и что вы думаете? начало:
- Код: Выделить всё
SEARCH_DIR(D:\pp\units\i386-linux\rtl\)
SEARCH_DIR(D:\pp\units\i386-linux\zvt\)
SEARCH_DIR(D:\pp\units\i386-linux\zlib\)
....
Пути менять похоже прийдется... да и версии RTL/FCL могут не совпать...