Используя SOCI с Qt = как написать хороший * .pro файл?

Я хотел бы написать приложение с графическим интерфейсом, используя Qt и SOCI. Как написать хороший * .pro файл для компиляции проекта без ошибок? Я написал это:

QT       += core gui

TARGET = example-project
TEMPLATE = appSOURCES += main.cpp\
mainwindow.cpp

HEADERS  += mainwindow.h

FORMS    += mainwindow.ui

INCLUDEPATH += /usr/local/include/soci\
/usr/include/postgresql/
LIBS += -lsoci_core -lsoci_postgresql -ldl -lpq

и это работает, но я не знаю, правильно ли это 🙂

0

Решение

.Pro-файл, который вы написали, выглядит хорошо, INCLUDEPATH /usr/include/postgresql/ может не понадобиться завершающий слеш, однако, способ определить, будет ли он «без ошибок», — это попробовать. Определение INCLUDEPATH позволит вам использовать заголовки из этих каталогов:

#include <header.h>

вместо:

#include "/usr/include/postgresql/header.h"

LIBS+= раздел должен содержать только библиотеки из SOCI, которые содержат символы, на которые вы ссылаетесь в своем коде. Если вы статически компилируете свою программу, она объединит эти библиотеки в ваш бинарный файл, увеличив его размер.

Существует множество функций, которые вы можете легко добавить с помощью файла .pro, и полезно знать, как их написать, например, вы можете добавить значок приложения для программ Mac OS, добавив строку:

ICON = Icon.icns

Посмотрите на Ссылка на файл Qt 4.7 .pro.

Вы всегда можете использовать автоматически сгенерированный файл .pro, перейдя в каталог, в котором находится ваш источник (в терминале), и с помощью команды:

qmake -project

По моему опыту, автоматически сгенерированный .pro-файл, как правило, неполный, но он дает вам стандарт сравнения и иногда включает в себя то, что вы иначе забыли бы.

Последний метод создания файла .pro взят из QtCreator IDE. Он автоматически добавляет и вычитает вещи из вашего профессионального файла, когда вы добавляете / вычитаете их из своего проекта, особенно просто добавлять формы и ресурсы в этой среде.

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]