Как заставить Visual Studio 2008 IDE искать правильные заголовочные файлы.Компиляция программы Qt / C ++ - PullRequest
0 голосов
/ 29 июня 2011

Я создаю приложение на Qt 4.6.2 с использованием Visual Studio 2008. Мне нужно включить заголовок <QtGui\QDir>.

Проблема: Заголовок QDir включает в себя несколько заголовков. Один из них - qfile.h. Теперь ide / compiler не может включить этот файл, и я получаю следующую ошибку

C: \ DevProjects \ MyProjects \ nttoolkit \ ствол \ внешний \ Qt \ включать \ QtCore ../../ SRC / corelib / IO / qfile.h (45) : фатальная ошибка C1083: не удается открыть включаемый файл: 'Qt / include / QtCore / qiodevice.h': Нет такой файл или каталог

Я не могу изменить путь в файле qfile.h, так как это внешний файл для моего проекта. Как мне заставить это работать.

Спасибо.

Ответы [ 2 ]

2 голосов
/ 29 июня 2011

Различные места, которые препроцессор ищет для включаемых файлов, описаны в разделе «Примечания» здесь .

Обычно для таких "SDK", как Qt, люди меняют свои Каталоги VC ++, Проекты, Опции в разделе Инструменты | Варианты | "Проекты и решения" | «Каталоги VC ++», чтобы списки включаемых файлов и файлов библиотек включали подходящие каталоги Qt. Таким образом, когда препроцессор ищет включаемые файлы Qt, он будет искать нужные места, а когда компоновщик ищет файлы .LIB, он также найдет их.

Недостатком изменения этих списков является то, что они применяются ко всем проектам, созданным из этой версии Visual Studio. Это может быть боль в шее, если у вас есть разные проекты, которые используют разные версии SDK. В подобных ситуациях одним из решений является создание переменных среды с именами INCLUDE и LIBPATH, а затем запуск devenv с ключом / useenv для переопределения настроек VC ++ Directories из Tools | Параметры.

Наконец, третий вариант заключается в предоставлении дополнительных папок include и library через свойства проекта. В проекте | Свойства | C ++ | Общее первое свойство - «Дополнительные каталоги включения». Размещенные там значения передаются препроцессору через переключатель / I . Аналогично Проект | Свойства | Линкер | На вкладке «Общие» имеется свойство «Дополнительные каталоги библиотек», которое передается компоновщику через переключатель / LIBPATH .

Этот третий вариант кажется привлекательным, поскольку позволяет устанавливать эти дополнительные каталоги для каждого проекта отдельно. Недостатком является то, что он «жестко кодирует» некоторые имена каталогов в проекте. Это может быть настоящей болью, если вы перенесете проект на новый компьютер, где файлы Qt находятся в другом каталоге, или когда вам придется переместить каталоги Qt на другой жесткий диск и т. Д.

1 голос
/ 29 июня 2011

В VS2010 я захожу:

Свойства проекта -> Каталоги VC ++ -> Включить каталоги

И задаю расположение каталогов, содержащих заголовки, которые мне нужно включить.В настоящее время у меня нет доступа к установке VS2008, но я думаю, что есть похожая опция конфигурации.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...