Categories: DatabasewxWidgets

Организуем доступ к базам данных 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

Теперь, если это еще не сделано, нужно удалить все .h и .cpp файлы, не относящиеся к проекту databaselayer_sqlite из папок databaselayer/src и databaselayer/include, а также папку databaselayer/tests
После того, как предварительная подготовка выполнена, запускаем Eclipse и в папке databaselayer создаем новый проект. Назовем его SqliteDatabaseLayer.

Выбираем тип проекта Static Library (Gnu). Жмем Finish

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

`wx-config --cxxflags`

Заметьте, кавычки обратные (кнопка со знаком ~ на клавиатуре ;))
Отлично, настройки библиотеки SqliteDatabaseLayer мы завершили. Теперь нужно создать проект для тестового приложения.

Создаем новый проект в папке SQLiteTest

Указываем тип проекта Executable (Gnu)

В зависимостях проекта выбираем проект библиотеки SqliteDatabaseLayer. Жмем Finish

В свойствах проекта в разделе C/C++ Build -> Directories добавляем новые записи

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

Заметьте, скобки фигурные, в отличии от настроек проекта в Visual Studio

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

`wx-config --cxxflags`


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

  • SqliteDatabaseLayer
  • sqlite3

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

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

  • {ProjDirPath}/../databaselayer/Debug

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

`wx-config --libs`

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

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

После этого у нас должна появиться новая конфигурация запуска с названием SQLiteTest
Жмем кнопку Search Project

В окне Program Selection выбираем наше приложение. Жмем OK

На вкладке Debugger в списке Debugger выбираем GDB Debugger. Жмем Run

Ну, вот и результат… довольно опрятно получилось.

Диалоговое окно ввода данных выглядит вот подобным образом.

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

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

T-Rex

View Comments

Share
Published by
T-Rex

Recent Posts

Разработка кроссплатформенных модульных приложений на C++ с библиотекой wxWidgets

Введение Уже долгое время не пишу статьи о разработке, хотя сам процесс написания мне очень…

11 years ago

wxWidgets App With Plugins (Windows/Linux/Mac) – Sample Source Code

I can see that there is still a lot of topics at wxWidgets forums related…

11 years ago

wxToolBox is Now Open-Source!

I've just published the source code of wxToolBox component and a couple of sample apps at…

11 years ago

Microsoft Kinect Helper Library and Sample for wxWidgets

Microsoft released their Kinect SDK several days ago. So, for those wxWidgets developers who are…

13 years ago

wxJSON 1.1.0 Released

JSON (JavaScript Object Notation) is a lightweight data-interchange format. It is easy for humans to…

15 years ago

wxRuby. Оно даже работает!

Вдохновленнный читаемой нынче книгой My Job Went to India: 52 Ways to Save Your Job…

15 years ago