Использование относительного пути в MPLAB IDE

Моя структура проекта и файлы выглядят следующим образом:

project\HAL\hw_lcd.h
project\HAL\hw_lcd.c
project\project\app.c
project\project\workspace.mcp
project\project\workspace.mcw

Где «проект» — это место для названия проекта. Я использую MPLAB IDE 8.66 и компилятор HI-TECH 9.81.

Я хотел бы добавить файлы hw_lcd.h/c, используя относительный путь к проекту. Так что если я пропишу #include "HAL/hw_lcd.h" в app.c, то hw_lcd.h будет найден из app.c.

Я добавил ../ в качестве пути поиска (проект > параметры сборки... > проект > каталоги и путь поиска > включить путь поиска), но получил следующую ошибку:

не удается открыть включаемый файл "hw_lcd.h": нет такого файла или каталога

Затем я попробовал ../HAL как включить путь поиска и написал #include "hw_lcd.h" в app.c. Это также генерирует вышеуказанную ошибку.

Можно ли использовать относительный путь поиска из MPLAB IDE?

Если сам путь #include относительный, то работает:

#include "../HAL/hw_lcd.h"

person Donotalo    schedule 29.03.2011    source источник


Ответы (1)


Не совсем то же самое, но я всегда использую

            #include "hw_lcd.h"

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

Это прекрасно работает. (но есть проблема, что если пути (например, HAL) меняются, вам нужно пройти по ним и изменить их все)

person Marco van de Voort    schedule 06.04.2011
comment
Скорее всего, абсолютный путь к каталогу, содержащему файл, добавлен в параметр «Включить путь поиска из параметров сборки» для вашего проекта. - person Donotalo; 06.04.2011
comment
Это не так. Однако это всего на один уровень ниже каталога проекта. И никогда не позволяйте IDE выбирать автоматический режим, всегда используйте относительный. Мало чем отличается от вашего, просто он называется INCLUDE16 вместо HAL. - person Marco van de Voort; 10.04.2011
comment
В вашем случае это down. Для меня это up с уровня проекта. - person Donotalo; 10.04.2011
comment
Это ..\include16 относительно каталога проекта. Так вверх. - person Marco van de Voort; 10.04.2011
comment
Вы имеете в виду, что ..\include16 добавляется к пути поиска включения? - person Donotalo; 11.04.2011
comment
Извините, да, действительно, я обнаружил, что весь каталог был добавлен в путь поиска включения. Относительно (..\include16) - person Marco van de Voort; 11.04.2011
comment
Почему это работает для вас, но не для меня? Какая у вас ОС и какую версию MPLAB вы используете? - person Donotalo; 11.04.2011
comment
Несколько версий, в основном mplab 8.63 с использованием компилятора микрочипа dspic33 (на основе gcc) для Windows XP, Vista и W7. (та же проверка на нескольких ПК). Результирующий репозиторий не зависит от того, где он извлечен, и я предполагаю, что это то, что вам нужно. Обратите внимание, что путь к включаемому файлу задается на уровне проекта. - person Marco van de Voort; 12.04.2011