Подтвердить что ты не робот

Qt Creator не может найти заголовки (говорит: "Нет такого файла или каталога" )

Как я могу сказать Qt Creator 2.4.1 (на основе Qt 4.7.4 32-bit), где искать по умолчанию для файлов заголовков?

Когда я открываю файл C в Qt Creator и говорю

#include <stdio.h>

он подчеркивает линию и говорит

stdio.h: No such file or directory

Я хотел бы сказать, чтобы искать заголовки в директории моего выбора; как это сделать?

Update

Думаю, я должен спросить: возможно ли это? Или я должен создавать весь проект каждый раз, когда я хочу редактировать автономный файл С++?

4b9b3361

Ответ 1

Я часто сталкивался с этой проблемой. Я также могу воспроизвести его на своей машине прямо сейчас (Mac OS).

Похоже, у QtCreator должен быть проект, позволяющий корректно обрабатывать анализ путей GCC (поверх путей каркаса Qt).
Процесс Qt использует для поиска заголовков в том, что он запускает GCC (или ваш компилятор в Windows) со специальными аргументами, которые выводят пути, в которых компилятор находит свои заголовки. НО > , для этого он должен иметь проект, связанный с вашими файлами, потому что он использует этот проект для определения того, какую инструментальную цепочку использовать, таким образом, где найден GCC.

Итак, ответ таков: создайте проект всегда, чтобы использовать синтаксический анализ.
Обратите внимание, что очень важно, что при создании этого проекта вы определяете, какую версию Qt SDK и инструментальную цепочку вы будете использовать, иначе синтаксический контроль не будет работать.

Возможно, вы найдете интересные способы использования файла проекта Qt, хотя не используете Qt SDK или используете Creator для создания вашего проекта. См. Ответ на аналогичный вопрос здесь: fooobar.com/questions/436753/...

Обратите внимание, что я лично использую этот метод с файлом .pro, который просто перечисляет все подкаталоги моего проекта и со всеми комбинациями клавиш для сборки отключен, поэтому я использую только Qt Creator в качестве редактора. Выделение/привязка синтаксиса является удивительным и исключительно быстрым, гораздо более быстрым, чем Eclipse!

Чтобы сделать это, просто введите qmake -pro в каталог вашего проекта. Он создаст файл [DIR].pro, который вы можете удалить в любое время.

Я заполнил ошибку год назад по аспекту этого синтаксического анализа, который беспокоил меня здесь: https://bugreports.qt.io/browse/QTCREATORBUG-4846, причина beiing что компилятор, который я использую, выводит свои данные на французский, а не на английский. Они исправили код в 2.4, но он может быть специфичным для Unix (см. Комментарии к проблеме для получения дополнительной информации), поэтому вы, вероятно, захотите проверить, может ли эта проблема применяться к вашему делу.

Если ваша проблема продолжается даже после создания проекта для вашего издания, обязательно укажите его ребятам на qt-project.org!

В противном случае единственным решением, которое я вижу, является изменение исходного кода QtCreator. Вы можете найти в своем последнем сообщении некоторую информацию о том, как внести свой вклад здесь: https://blog.qt.io/blog/2012/03/15/qt-creator-2-5-beta/ (и попробовать свою новую бета-версию, которая поддерживает С++ lambdas).

Ответ 2

какую операционную систему и компилятор вы используете и версию обоих? Проверьте правильность переменных среды для установки, например, Где находятся заголовки С++?. Вариант состоит в том, чтобы добавить путь "включения ваших заголовков" в конфигурацию проекта на левой панели, перейти к "project-program-target" и добавить путь к ним. другой - добавить полный путь к расположению стандартных заголовков С++ к переменной "includesepath" в вашем .pro файле.

Ответ 3

Отдельные файлы С++ могут быть отредактированы, но, скорее всего, вы потеряете функциональность #include и автозаполнения, среди прочих тиков. Я лично сохраняю все свои проекты в Qt как-то, будь то простая программа GUI, которая выполняет одну задачу, поэтому я могу ее отлаживать (gdb, похоже, не нравится программам командной строки, по крайней мере, по моему опыту) или используйте "Simple С++ командной строки" для проектов, не зависящих от Qt.

Ответ 4

Или мне нужно создать весь проект каждый раз, когда я хочу отредактировать автономный файл С++?

Нет, вы можете включить автономный файл в существующий проект одним щелчком правой кнопки мыши по корню дерева проекта - контекстное меню - добавить существующий файл. Вы можете назначить для этого горячую клавишу, а также удалить файл из проекта, поэтому он будет быстрым и простым в использовании вашего любимого редактора и его среды. Вы можете посмотреть на него, когда вы просто открываете файл. К сожалению, нет аргументов командной строки для назначения проекта по умолчанию (и его среды) для автономного файла для его использования двойным щелчком в файловом менеджере.

Надеюсь, что это поможет.

Ответ 5

Это зависит от того, какая инструментальная цепочка определена для текущего проекта.

Инструментальные цепочки определены в инструментальных цепочках Tools-Options-Build и Run-Tool. Большинство из них автоопределены, но вы можете добавить свои собственные.

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