C / C Как получить доступ к заголовочным файлам?

#linker #header-files

#компоновщик #заголовочные файлы

Вопрос:

Я добавил некоторые исходные файлы заголовков в общую папку ( ..sharedabc ), а мой файл кода из другой папки ( ..srcxyz ) имеет #include <abc/../foo.hpp> . Я получаю эту ошибку:

Не удается открыть исходный файл ошибка

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

Использование VC9 nmake для компиляции кода. Это проект на основе Makefile.

Комментарии:

1. Как выглядит командная строка, передаваемая компилятору?

2. Как я могу это увидеть. Я набираю только «nmake».

3. Я не использовал nmake , но варианты UNIX make обычно печатают команды, которые он выполняет, по мере их выполнения.

4. Действительно ли ваши инструкции include содержат / ../ в имени пути или вы просто пытаетесь сэкономить на вводе? Поскольку две подобные точки в имени пути означают, что каталог на один уровень выше, so #include <abc/../foo.hpp> эквивалентно #include <foo.hpp>

Ответ №1:

Если включаемые файлы взяты из какой-либо библиотеки, используемой вашим кодом, вы захотите указать путь включения с помощью опции компилятора. Для компилятора Visual C параметром командной строки для указания дополнительных включенных каталогов является /I , например:

 cl /I ..shared foo.cpp
  

Вам нужно соответствующим образом изменить параметры компилятора в вашем Makefile.