Организуем доступ к базам данных SQLite при разработке кросс-платформенных приложений на C++/wxWidgets – Часть III – Сборка проекта под Linux в Eclipse

Продолжение статьи о работе с базами данных на wxWidgets. Первая часть статьи доступна здесь. Вторая часть доступна здесь.
В третьей части рассказывается о том, как собрать приложение, использующее DatabaseLayer, SQLite и wxARG в Linux с помощью Eclipse.

Я использую дистрибутив Fedora Core 5, в котором не оказалось файла libsqlite3.a, необходимого для сборки проекта. Для того чтобы решить эту проблему, я удалил пакеты sqlite и sqlite-devel, затем скачал исходный код sqlite (sqlite-x.y.z.tar.gz), собрал его:

./configure –enable-static
make
make install

После сборки sqlite необходимо убедиться, что путь к файлам libsqlite3.so.* находится в списке путей поиска библиотек. Я же просто создал ссылки на эти файлы в каталоге /lib
Работа с базами данных в wxWidgets - SQLite + DatabaseLayer - 1
Теперь, если это еще не сделано, нужно удалить все .h и .cpp файлы, не относящиеся к проекту databaselayer_sqlite из папок databaselayer/src и databaselayer/include, а также папку databaselayer/tests
После того, как предварительная подготовка выполнена, запускаем Eclipse и в папке databaselayer создаем новый проект. Назовем его SqliteDatabaseLayer.
Работа с базами данных в wxWidgets - SQLite + DatabaseLayer - 1
Выбираем тип проекта Static Library (Gnu). Жмем Finish
Работа с базами данных в wxWidgets - SQLite + DatabaseLayer - 1

Далее идем в настройки проекта и в разделе C/C++ Build -> Miscellaneous в поле Other flags дописываем

`wx-config --cxxflags`

Заметьте, кавычки обратные (кнопка со знаком ~ на клавиатуре ;))
Отлично, настройки библиотеки SqliteDatabaseLayer мы завершили. Теперь нужно создать проект для тестового приложения.
Работа с базами данных в wxWidgets - SQLite + DatabaseLayer - 1
Создаем новый проект в папке SQLiteTest
Работа с базами данных в wxWidgets - SQLite + DatabaseLayer - 1
Указываем тип проекта Executable (Gnu)
Работа с базами данных в wxWidgets - SQLite + DatabaseLayer - 1
В зависимостях проекта выбираем проект библиотеки SqliteDatabaseLayer. Жмем Finish
Работа с базами данных в wxWidgets - SQLite + DatabaseLayer - 1
В свойствах проекта в разделе C/C++ Build -> Directories добавляем новые записи

  • {ProjDirPath}/art
  • {ProjDirPath}/wxActiveRecord
  • {ProjDirPath}/../databaselayer/include

Заметьте, скобки фигурные, в отличии от настроек проекта в Visual Studio
Работа с базами данных в wxWidgets - SQLite + DatabaseLayer - 1

В свойствах проекта в разделе C/C++ Build -> Miscellaneous в поле Other flags дописываем:

`wx-config --cxxflags`

Работа с базами данных в wxWidgets - SQLite + DatabaseLayer - 1
В свойствах проекта в разделе C/C++ Build -> Libraries добавляем новые записи

  • SqliteDatabaseLayer
  • sqlite3

Библиотеки должны быть добавлены именно в указанной последовательности т.к. библиотека libSqliteDatabaseLayer.a зависит от libsqlite3.a

И в списке Library search path добавляем запись

  • {ProjDirPath}/../databaselayer/Debug

Работа с базами данных в wxWidgets - SQLite + DatabaseLayer - 1

В свойствах проекта в разделе C/C++ Build -> GCC C++ Linker -> Miscellaneous в поле Linker flags дописываем:

`wx-config --libs`

Работа с базами данных в wxWidgets - SQLite + DatabaseLayer - 1

Собираем проект с помощью Project -> Build Project

После успешной сборки неплохо было бы запустить наше приложение и проверить его на работоспособность.
Выбираем пункт меню Run -> Run…
В диалоговом окне Run жмем правой кнопкой на элементе C/C++ Local Application, выбираем пункт меню New
Работа с базами данных в wxWidgets - SQLite + DatabaseLayer - 1

После этого у нас должна появиться новая конфигурация запуска с названием SQLiteTest
Жмем кнопку Search Project
Работа с базами данных в wxWidgets - SQLite + DatabaseLayer - 1
В окне Program Selection выбираем наше приложение. Жмем OK
Работа с базами данных в wxWidgets - SQLite + DatabaseLayer - 1
На вкладке Debugger в списке Debugger выбираем GDB Debugger. Жмем Run
Работа с базами данных в wxWidgets - SQLite + DatabaseLayer - 1
Ну, вот и результат… довольно опрятно получилось.
Работа с базами данных в wxWidgets - SQLite + DatabaseLayer - 1
Диалоговое окно ввода данных выглядит вот подобным образом.
Работа с базами данных в wxWidgets - SQLite + DatabaseLayer - 1

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

Скачать исходный код к статье

1 comment

  1. Pingback: Организуем доступ к базам данных SQLite при разработке кросс-платформенных приложений на C++/wxWidgets - Часть 2 - wxActiveRecordGenerator (wxARG) | Cross-Platform Programming wit

Leave a Reply

Your email address will not be published. Required fields are marked *

Please leave these two fields as-is: