GCC не может распознать путь к каталогу внутри файла - PullRequest
0 голосов
/ 03 мая 2019

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

Допустим, у меня есть файл с именем "machine.h", его содержимое равно target-pisa/pisa.h. В то же время в том же рабочем каталоге у меня есть папка с именем «target-pisa», в которой находится файл с именем «pisa.h»; Фактический код файла заголовка «machine.h» фактически находится внутри файла «pisa.h», который находится внутри папки с именем «target-pisa», расположенной в том же рабочем каталоге, что и «machine.h».

Предположим, по какой-то причине я не могу просто скопировать и вставить код из "pisa.h" в "machine.h"; то есть я должен придерживаться того, что предоставлено проф. Команда make в этом случае не работает на моем ноутбуке, поскольку она не может интерпретировать target-pisa/pisa.h как путь к каталогу и открывать фактический заголовочный файл "pisa.h" в соответствии с путем target-pisa/pisa.h, указанным в файле "machine". час". Вместо этого git bash интерпретирует target-pisa/pisa.h как код C (если я не ошибаюсь); см. рисунок ниже.

enter image description here

Некоторая дополнительная информация, которая может быть полезна:

В machine.h есть только одна строка кода, как показано ниже: target-pisa/pisa.h

Я проверил, что почти все .c файлы в рабочем каталоге имеют #include "machine.h".

Как я могу решить эту проблему? Пожалуйста, помогите, я застрял в этом в течение длительного времени. Кстати, мой друг также использовал git bash для этой лаборатории, и с ним такой проблемы не возникает.

Я попытался переустановить git bash, чтобы посмотреть, можно ли решить проблему, но это не помогло.

В общем, я хочу успешно собрать программу, используя команду make в git bash.

1 Ответ

1 голос
/ 03 мая 2019

machine.h должна иметь директиву #include, указывающую компилятору вставлять вложенный заголовок.

#include "target-pisa/pisa.h"

Простое написание target-pisa/pisa.h само по себе не является допустимым кодом C.

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