Russian Qt Forum

Qt => Вопросы новичков => Тема начата: Intueor от Октябрь 23, 2013, 23:27



Название: Странности с INCLUDEPATH
Отправлено: Intueor от Октябрь 23, 2013, 23:27
Перешёл с VS2012, писал 2D движок с Box2D - необходимо подключить заголовки и библиотеку.
INCLUDEPATH в .pro файле по каким-то причинам влияет лишь на отображение корректности в QtCreator`е и всплывающее окно с адресом (верным), при наведении мыши на #include. При компиляции - сообщение "no such file".
Естественно, потратил море времени на танцы с бубном и рытьё гугла. В итоге, справился сам, но это явно не есть гуд: прописал нужные каталоги в глобальную системную переменную INCLUDE и вообще стёр все INCLUDEPATH из проекта - заработало.

Тестовый проект с тем же результатом.
Файл .pro:

QT       += core gui
greaterThan(QT_MAJOR_VERSION, 4): QT += widgets
TARGET = Test
TEMPLATE = app
INCLUDEPATH += "C:\Program Files (x86)\Box2D_v2.2.1"
INCLUDEPATH += "C:\Program Files (x86)\Microsoft SDKs\Windows\v7.1A\Include"
SOURCES += main.cpp\
        mainwindow.cpp
HEADERS  += mainwindow.h
FORMS    += mainwindow.ui

И в начале main.cpp:

#include <Windows.h>
#include <Box2D\Box2D.h>

Qt5.1.1(x86), оф. сборка, QtCreator2.8.1, VS2012

Пожалуйста, помогите разобраться.


Название: Re: Странности с INCLUDEPATH
Отправлено: ViTech от Октябрь 24, 2013, 11:31
Может дело в пробелах в путях к заголовкам?
Цитировать
INCLUDEPATH
...
To specify a path containing spaces, quote the path using the technique mentioned in the qmake Project Files document. For example, paths with spaces can be specified on Windows and Unix platforms by using the quote() function in the following way:

win32:INCLUDEPATH += $$quote(C:/mylibs/extra headers)
unix:INCLUDEPATH += $$quote(/home/user/extra headers)

Ещё, после изменения pro-файла, бывает полезно "Запустить qmake" для проекта и выполнить его полную пересборку.


Название: Re: Странности с INCLUDEPATH
Отправлено: Intueor от Октябрь 24, 2013, 21:59
Спасибо, ViTech!
Кое-что вышло, решил поделиться, вдруг у кого такая же проблема...

Перепробовал все варианты присваиваемых строк, какие только нашёл в и-нете - эффекта ноль, только перестаёт видеть путь редактор (при некорректной строке).
Переустановил VS2012, проинициализировал пути в сист. переменных (по инструкции с оф. сайта, заново). Толку нет.
НО! Загрузил и откомпилировал исходники с nmake - и вуаля! Всё видит!

Между тем, официальная сборка ведёт себя так же, как и раньше - не принимает INCLUDEPATH в компилятор, только в область видимости редактора. Оба QTCreator`a (и из пакета, и отдельный) с собственной сборкой работают корректно.