Макрос C необъявленный - PullRequest
       23

Макрос C необъявленный

0 голосов
/ 26 сентября 2019

Я пытаюсь использовать заголовок, чтобы объявить некоторые макросы для препроцессора и использовать их в файле кода.

Это мой заголовок: error.h

#ifndef PROJET_MODULE_H 
#define PROJET_MODULE_H

#define TESTMACRO 5

#endif

и файл кода: error.c

#include <error.h>
#include <stdio.h>

int main(){
   printf("%d\n", TESTMACRO);
   return 0;
}

И я получаю эту ошибку:

'TESTMACRO' undeclared (первое использование в этой функции)

Я пытался скомпилировать, выполнив:

gcc error.c -o error

и

gcc error.h error.c -o ошибка

Оба дали мне ошибку .. Любая помощь приветствуется, спасибо

Ответы [ 2 ]

1 голос
/ 26 сентября 2019

Чтобы включить системный заголовочный файл, вы можете использовать <> или ""

Чтобы включить пользовательский заголовочный файл, вы должны использовать "error.h" или "absolute path of error.h"

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

gcc error.c -I <path of folder in which error.h resides> -o error

например, если error.h находится в /user/testuser/include/error.h затем

gcc error.c -I /user/testuser/include/ -o error

1 голос
/ 26 сентября 2019

Подводя итог всему сказанному в комментарии:
Чтобы включить несистемные заголовки, вы должны использовать ", а не <>
Требование решено изменить #include <error.h> на #include "error.h"

...