2015-06-22 1 views
1

У меня есть одна папка проекта, в которой у меня есть главный каталог проектов, скажем Main_Proj. В этой папке я создал две папки для Header_Files и Source_Files.Can Lint разрешает путь включения файлов заголовка

Папка Header_Files содержит только заголовочные файлы. скажем module_1a.h и так далее. Принимая во внимание, что папка Source_Files содержит main.c и снова модуль wise folders, скажем Module_1, который содержит только необходимые файлы .c определенного модуля. Так, например, папка Module_1 содержит Module_1a.c и Module_1b.c.

Так путь для Module_1a.c будет =

Main_proj \ Souce_Files \ Module_1 \ Module_1a.c

и во всем исходном файле я включил заголовочные файлы, как показано ниже -

//Code for Module_1a.c 
#include "..\..\Header_Files\Module_1a.h" 
.... 

My IDE MP LAB, и этот код и все модули работают нормально с MP LAB xc8 компилятор.

Проблема возникает, когда я начал Lint ING мой код, его дает мне ошибки как -

Ошибка 322: Не удалось открыть файл включать '.... \ Header_Files \ Module_1a.h'

Я использую PC Lint для C и C++ (версия 9). Я искал разрешение этой ошибки в руководстве Regference и узнал, чтобы включить этот каталог с параметром -i.

Я также проверил с set INCLUDE=<directory Path>, но его не работает.

Есть ли что-нибудь, что я могу сделать с моим файлом std.lnt или мне нужно изменить структуру папок для моего проекта?

+0

Поскольку проблема содержит относительную ссылку, может возникнуть вопрос, с какого пула каталогов запускается или, по крайней мере, каким-то образом сказать, где взять его, начиная с. –

+0

«-i» должен работать. Отправьте свой каталог и создайте корневую структуру. (Вы также можете работать с абсолютными путями, но это не так просто переносить) Lint находится в стандартном каталоге C \ lint? – Miguel13366

+0

@ Miguel13366: Да, с абсолютным путем Lint работает нормально, но для замены всех включений с их абсолютным путем потребуется много переделок. Линт находится в каталоге C. Я сохраняю свою папку проекта на рабочем столе, и я включаю этот путь в std.lnt следующим образом: -i "C: \ Users \ \ Desktop \ Main_Proj \ Header_Files \" – Asm

ответ

1

Любая структура дерева исходного кода, в которой содержатся заголовки или пути .., повреждена, как указано.

путь и избавиться от многих проблем

  • есть корневой каталог одного проекта
  • Использование -I. при компиляции, пылеобразования, предварительная обработка, статический анализ, ...
  • все ссылки на файлы в заголовках и файл make-проекта видны из корня проекта

Т.е. заголовок включает в себя другие заголовки с использованием

#include "subdir/whatever/foo_module.h" 

и вся компиляция происходит, если рабочий каталог является корнем проекта, например.

subdir/whatever/foo_module.o: subdir/whatever/foo_module.c 
    $(CC) $(CFLAGS) -I. -o [email protected] $< 

Это держит цифры -I очень короткими; идеально только -I..

 Смежные вопросы

  • Нет связанных вопросов^_^