Название: в Студии 2008 не находит #include <*.h> Отправлено: Alf от Октябрь 09, 2012, 16:55 В корне проекта есть файл "parameters.h". В файле проекта "myfolder1/myfile1.h" есть строка:
Код: #include <parameters.h> В Qt Creator проект собирается без ошибок. Открываю этот же проект в MSVS 2008, получаю ошибку: Цитировать 1>e:\programming\myproject\myfolder1\myfile1.h(4) : fatal error C1083: Cannot open include file: 'parameters.h': No such file or directory Если в Студии в свойствах проекта в раздел "Additional Include Directories" добавляю руками ".\", то ошибка исчезает. Вопрос: Что нужно добавить в Qt-ый проект (*.pro), чтобы в Студии не добавлять текущую директорию в инклуды руками ? Пробовал вариант: Код: INCLUDEPATH += $$PWD Название: Re: в Студии 2008 не находит #include <*.h> Отправлено: GreatSnake от Октябрь 09, 2012, 16:59 Локальные инклюдники нужно указывать в "..."
Название: Re: в Студии 2008 не находит #include <*.h> Отправлено: Bepec от Октябрь 09, 2012, 17:40 Полегче надо. Я когда название темы прочитал, чуть пирожное целиком не проглотил. Еле выжил :D
Название: Re: в Студии 2008 не находит #include <*.h> Отправлено: Alf от Октябрь 09, 2012, 18:41 Конечно, можно
Код: #include "..\parameters.h" Но самое главное, я не понимаю, почему в Qt Creator проект собирается, а в Студии 2008 - нет ! Почему есть разница в интерпретации инклудов ? Название: Re: в Студии 2008 не находит #include <*.h> Отправлено: Bepec от Октябрь 09, 2012, 19:29 Потому что есть стандарты.
В Visual если файл в твоей папке лежит - то "". Если искать по глобальным путям, то <>. Не придётся тебе переписывать. Прописывай относительный путь, если у тебя уж такая запутанная структура проекта :) Название: Re: в Студии 2008 не находит #include <*.h> Отправлено: kai666_73 от Октябрь 10, 2012, 10:38 Ненене...
В студии в свойствах проекта добавьте дополнительный каталог включения "./myfolder1" (без кавычек, разумеется) и все наладится. А вот какие символы использовать в инклудах - фиолетово. А в PRO добавить надо INCLUDEPATH += ./myfolder1 Название: Re: в Студии 2008 не находит #include <*.h> Отправлено: V1KT0P от Октябрь 10, 2012, 20:10 Конечно, можно Добавь в Include Path путь к корню проекта(имеется ввиду не абсолютный путь а переменную $(ProjectDir) или $(SolutionDir) ) и тогда вместо вот такого:Код: #include "..\parameters.h" Цитировать #include "..\class1.h" Будешь писать такое:#include "..\thirdparty\superliba.h" Цитировать #include "class1.h" #include "thirdparty\superliba.h" Название: Re: в Студии 2008 не находит #include <*.h> Отправлено: Alf от Октябрь 11, 2012, 12:49 To V1KT0P:
Цитировать Добавь в Include Path путь к корню проекта(имеется ввиду не абсолютный путь а переменную $(ProjectDir) или $(SolutionDir) ) В своём первом посте я написал, что пробовал Код: INCLUDEPATH += $$PWD Название: Re: в Студии 2008 не находит #include <*.h> Отправлено: Alf от Октябрь 11, 2012, 13:05 Из ответов гуру GreatSnake и Bepec я понял, что файлы проекта лучше инклудить в кавычках, указывая относительный путь. Спасибо, впредь действительно буду придерживаться этого правила. Правда, среди всех постов я так и не нашёл ответа на свой совершенно конкретный вопрос :)
To Bepec: Цитировать Не придётся тебе переписывать. Прописывай относительный путь, если у тебя уж такая запутанная структура проекта. Ещё как придётся ! Если я перемещу файл "parameters.h" из корня проекта в другую директорию, то все инклуды этого файла в проекте придётся переписывать !To kai666_73: Спасибо за внимание к теме, но Вы решили ответить не вникая в суть вопроса )) Название: Re: в Студии 2008 не находит #include <*.h> Отправлено: Bepec от Октябрь 11, 2012, 13:09 Я не гуру :D Я нуб ;)
Ответ на твою цитату - "А если ты файл удалишь, то тебе придётся вообще инклуды удалять". :D Название: Re: в Студии 2008 не находит #include <*.h> Отправлено: kambala от Октябрь 11, 2012, 14:00 Код: INCLUDEPATH += $$PWD Название: Re: в Студии 2008 не находит #include <*.h> Отправлено: Alf от Октябрь 11, 2012, 14:56 To kambala:
Попробовал Код: INCLUDEPATH += $$_PRO_FILE_PWD_ Название: Re: в Студии 2008 не находит #include <*.h> Отправлено: Serr500 от Октябрь 11, 2012, 16:43 PWD — это по-моему папка сборки, а не проекта. Ни то, ни другое, хотя обычно совпадает с папкой проекта. http://qt-project.org/doc/qt-4.8/qmake-variable-reference.html#pwd (http://qt-project.org/doc/qt-4.8/qmake-variable-reference.html#pwd)Цитировать The PWD variable specifies the full path leading to the directory containing the current file being parsed. This can be useful to refer to files within the source tree when writing project files to support shadow builds. Название: Re: в Студии 2008 не находит #include <*.h> Отправлено: kai666_73 от Октябрь 12, 2012, 11:40 Грязный хук
Код: INCLUDEPATH += ./myFolder1/.. Сам правда не пробовал... :D |