Название: Установка пути для header в QtCreator Отправлено: qplace от Апрель 15, 2013, 14:55 Я собрал Qt5.0.2 и пытаюсь создать тестовый проект в QtCreator 2.7. До этого времени я работал с VS, и опыта работы с creator у меня никакого. Я создал тестовый проект по умолчанию (библиотека), и все что я пытаюсь сделать, так это указать на путь в другую директорию. Компилятор выдает ошибку (файл не найден), но редактор прекрасно этот файл показывает. Задаю директорию и так, и этак - ничего не выходит.
В приложении - зип проекта. Буду очень признателен если кто может посмотреть почему не находится хедер Название: Re: Установка пути для header в QtCreator Отправлено: popper от Апрель 15, 2013, 15:39 А поменять слеш на прямой в INCLUDEPATH пробовал?
Название: Re: Установка пути для header в QtCreator Отправлено: qplace от Апрель 15, 2013, 15:50 Да, пробовал. Не помогает. Пробовал такие варианты:
c:/test/exports c:/test/exports/ C:/test/exports/ c:\test\exports c:\test\exports\ C:\test\exports\ В зипе лежит простейший проект сгенеренный creator-ом, с директорией и файлом который я пытаюсь включить в проект. Редактор файл видит, а компилятор нет. Вообще непонятно. В VS можно посмотреть "advanced options", как среда разворачивает настройки для компилятора; в QtCreator по-моему такого нет, поэтому непонятно какие опции передаются в компилятор. Но может быть непонятно только мне, поскольку с creatorом я не работал никогда. Название: Re: Установка пути для header в QtCreator Отправлено: ViTech от Апрель 15, 2013, 16:31 В файле проекта надо указывать пути относительно каталога, в котором этот *.pro файл и находится.
Например: Код: INCLUDE_DIR = . # Текущий каталог, но, по-хорошему, должен быть include И абсолютных путей нужно избегать. Проект должен собираться в окружении, где таких путей может и не быть вовсе. Название: Re: Установка пути для header в QtCreator Отправлено: qplace от Апрель 15, 2013, 16:54 К сожалению не помогло.
Ошибка по-прежнему: C:\test\libtest\libtest.cpp:1: error: C1083: Cannot open include file: 'test.h': No such file or directory Вот мой pro: QT -= gui TARGET = libtest TEMPLATE = lib DEFINES += LIBTEST_LIBRARY INCLUDE_DIR = . EXPORTS_DIR = $${INCLUDE_DIR}/../exports INCLUDEPATH = $${INCLUDE_DIR} $${EXPORTS_DIR} HEADERS += libtest.h \ libtest_global.h \ $${EXPORTS_DIR}/test.h \ SOURCES += libtest.cpp unix:!symbian { maemo5 { target.path = /opt/usr/lib } else { target.path = /usr/lib } INSTALLS += target } Дополнительный вопрос: я не хочу указывать каждый хедер в HEADERS так как было предложено, я хочу указать директории где эти хедеры надо искать Название: Re: Установка пути для header в QtCreator Отправлено: ViTech от Апрель 15, 2013, 17:55 INCLUDEPATH = $${INCLUDE_DIR} $${EXPORTS_DIR} Скорее надо так, с разделителем "\": Код: INCLUDEPATH = $${INCLUDE_DIR} \ Дополнительный вопрос: я не хочу указывать каждый хедер в HEADERS так как было предложено, я хочу указать директории где эти хедеры надо искать Хедеры можно и не указывать, если они напрямую к проекту не относятся. Указывать нужно для QtCreator, чтобы знать какие файлы проекта отображать для редактирования. И для системы сборки qmake, если в хедерах потомки от QObject с макросом Q_OBJECT, чтобы moc вызвать для нужных файлов. И еще каких-нибудь случаев :). Посмотреть значения переменных в файле проекта можно с помощью message: Код: message($${INCLUDE_DIR}) Название: Re: Установка пути для header в QtCreator Отправлено: qplace от Апрель 15, 2013, 18:12 Увы, таже ошибка.
А вы используете Qt5.0.2 с qtCreator2.7 под виндовс7? QT -= gui TARGET = libtest TEMPLATE = lib DEFINES += LIBTEST_LIBRARY INCLUDE_DIR = . EXPORTS_DIR = $${INCLUDE_DIR}/../exports INCLUDEPATH = $${INCLUDE_DIR} \ $${EXPORTS_DIR} message($${INCLUDEPATH}) DEPENDPATH = $${INCLUDEPATH} HEADERS += libtest.h \ libtest_global.h \ $${EXPORTS_DIR}/test.h \ SOURCES += libtest.cpp unix:!symbian { maemo5 { target.path = /opt/usr/lib } else { target.path = /usr/lib } INSTALLS += target } Название: Re: Установка пути для header в QtCreator Отправлено: ViTech от Апрель 15, 2013, 18:39 А вы используете Qt5.0.2 с qtCreator2.7 под виндовс7? Да, они и есть. И с таким pro-файлом собирается нормально. Вы после изменения и сохранения pro-файла, делали "Build/Run qmake" ("Сборка/Запустить qmake") для проекта? Это полезно периодически делать, равно как и полную пересборку проекта :). Visual Studio в этом отношении лучше отслеживает изменения в файлах проекта. Название: Re: Установка пути для header в QtCreator Отправлено: qplace от Апрель 15, 2013, 18:52 да! ДА! ДАААА!
Заработало! Это было то что вы сказали (Build/Run qmake). Это что, рекомендуется делать после каждого изменения .pro файла? Спасибо большое. Уфф. Я уж думал что придется продолжать с VS. Название: Re: Установка пути для header в QtCreator Отправлено: ViTech от Апрель 15, 2013, 19:50 Это что, рекомендуется делать после каждого изменения .pro файла? Лучше сделать, чем не сделать :). Не зря же это в пункт меню вынесли. После сохранения измененного pro-файла QtCreator обновляет свою структуру проектов, но надо еще qmake для самого проекта вызвать, чтобы обновились Makefile, похоже не всегда это корректно происходит. Ну и еще, кроме pro-файлов бывают всякие *.pri или еще какие. Поэтому, после серьезных изменений в pro-файлах, лучше самому запустить qmake и полностью пересобрать проект. |